|
|
@ -376,7 +376,7 @@ namespace i2p |
|
|
|
if (!i2p::context.DecryptTunnelBuildRecord (record + BUILD_REQUEST_RECORD_ENCRYPTED_OFFSET, clearText)) return false; |
|
|
|
if (!i2p::context.DecryptTunnelBuildRecord (record + BUILD_REQUEST_RECORD_ENCRYPTED_OFFSET, clearText)) return false; |
|
|
|
uint8_t retCode = 0; |
|
|
|
uint8_t retCode = 0; |
|
|
|
// replace record to reply
|
|
|
|
// replace record to reply
|
|
|
|
if (i2p::context.AcceptsTunnels () && i2p::context.GetCongestionLevel (false) < 100) |
|
|
|
if (i2p::context.AcceptsTunnels () && i2p::context.GetCongestionLevel (false) < CONGESTION_LEVEL_FULL) |
|
|
|
{ |
|
|
|
{ |
|
|
|
auto transitTunnel = i2p::tunnel::CreateTransitTunnel ( |
|
|
|
auto transitTunnel = i2p::tunnel::CreateTransitTunnel ( |
|
|
|
bufbe32toh (clearText + ECIES_BUILD_REQUEST_RECORD_RECEIVE_TUNNEL_OFFSET), |
|
|
|
bufbe32toh (clearText + ECIES_BUILD_REQUEST_RECORD_RECEIVE_TUNNEL_OFFSET), |
|
|
@ -586,7 +586,7 @@ namespace i2p |
|
|
|
// check if we accept this tunnel
|
|
|
|
// check if we accept this tunnel
|
|
|
|
std::shared_ptr<i2p::tunnel::TransitTunnel> transitTunnel; |
|
|
|
std::shared_ptr<i2p::tunnel::TransitTunnel> transitTunnel; |
|
|
|
uint8_t retCode = 0; |
|
|
|
uint8_t retCode = 0; |
|
|
|
if (!i2p::context.AcceptsTunnels () || i2p::context.GetCongestionLevel (false) >= 100) |
|
|
|
if (!i2p::context.AcceptsTunnels () || i2p::context.GetCongestionLevel (false) >= CONGESTION_LEVEL_FULL) |
|
|
|
retCode = 30; |
|
|
|
retCode = 30; |
|
|
|
if (!retCode) |
|
|
|
if (!retCode) |
|
|
|
{ |
|
|
|
{ |
|
|
|