@ -28,6 +28,7 @@ namespace transport
const int SSU2_TERMINATION_CHECK_TIMEOUT = 30 ; // 30 seconds
const int SSU2_TERMINATION_CHECK_TIMEOUT = 30 ; // 30 seconds
const int SSU2_TOKEN_EXPIRATION_TIMEOUT = 9 ; // in seconds
const int SSU2_TOKEN_EXPIRATION_TIMEOUT = 9 ; // in seconds
const int SSU2_RELAY_NONCE_EXPIRATION_TIMEOUT = 10 ; // in seconds
const int SSU2_RELAY_NONCE_EXPIRATION_TIMEOUT = 10 ; // in seconds
const int SSU2_PEER_TEST_EXPIRATION_TIMEOUT = 60 ; // 60 seconds
const size_t SSU2_SOCKET_RECEIVE_BUFFER_SIZE = 0x1FFFF ; // 128K
const size_t SSU2_SOCKET_RECEIVE_BUFFER_SIZE = 0x1FFFF ; // 128K
const size_t SSU2_SOCKET_SEND_BUFFER_SIZE = 0x1FFFF ; // 128K
const size_t SSU2_SOCKET_SEND_BUFFER_SIZE = 0x1FFFF ; // 128K
const size_t SSU2_MTU = 1488 ;
const size_t SSU2_MTU = 1488 ;
@ -134,7 +135,7 @@ namespace transport
uint8_t payload [ SSU2_MAX_PAYLOAD_SIZE ] ;
uint8_t payload [ SSU2_MAX_PAYLOAD_SIZE ] ;
size_t payloadSize ;
size_t payloadSize ;
} ;
} ;
typedef std : : function < void ( ) > OnEstablished ;
typedef std : : function < void ( ) > OnEstablished ;
public :
public :
@ -204,6 +205,7 @@ namespace transport
void HandleRelayRequest ( const uint8_t * buf , size_t len ) ;
void HandleRelayRequest ( const uint8_t * buf , size_t len ) ;
void HandleRelayIntro ( const uint8_t * buf , size_t len ) ;
void HandleRelayIntro ( const uint8_t * buf , size_t len ) ;
void HandleRelayResponse ( const uint8_t * buf , size_t len ) ;
void HandleRelayResponse ( const uint8_t * buf , size_t len ) ;
void HandlePeerTest ( const uint8_t * buf , size_t len ) ;
size_t CreateAddressBlock ( uint8_t * buf , size_t len , const boost : : asio : : ip : : udp : : endpoint & ep ) ;
size_t CreateAddressBlock ( uint8_t * buf , size_t len , const boost : : asio : : ip : : udp : : endpoint & ep ) ;
size_t CreateRouterInfoBlock ( uint8_t * buf , size_t len , std : : shared_ptr < const i2p : : data : : RouterInfo > r ) ;
size_t CreateRouterInfoBlock ( uint8_t * buf , size_t len , std : : shared_ptr < const i2p : : data : : RouterInfo > r ) ;
@ -231,6 +233,7 @@ namespace transport
std : : map < uint32_t , std : : shared_ptr < SentPacket > > m_SentPackets ; // packetNum -> packet
std : : map < uint32_t , std : : shared_ptr < SentPacket > > m_SentPackets ; // packetNum -> packet
std : : map < uint32_t , std : : shared_ptr < SSU2IncompleteMessage > > m_IncompleteMessages ; // I2NP
std : : map < uint32_t , std : : shared_ptr < SSU2IncompleteMessage > > m_IncompleteMessages ; // I2NP
std : : map < uint32_t , std : : pair < std : : shared_ptr < SSU2Session > , uint64_t > > m_RelaySessions ; // nonce->(Alice, timestamp) for Bob or nonce->(Charlie, timestamp) for Alice
std : : map < uint32_t , std : : pair < std : : shared_ptr < SSU2Session > , uint64_t > > m_RelaySessions ; // nonce->(Alice, timestamp) for Bob or nonce->(Charlie, timestamp) for Alice
std : : map < uint32_t , std : : pair < std : : shared_ptr < SSU2Session > , uint64_t > > m_PeerTests ; // same as for relay sessions
std : : list < std : : shared_ptr < I2NPMessage > > m_SendQueue ;
std : : list < std : : shared_ptr < I2NPMessage > > m_SendQueue ;
i2p : : I2NPMessagesHandler m_Handler ;
i2p : : I2NPMessagesHandler m_Handler ;
bool m_IsDataReceived ;
bool m_IsDataReceived ;