diff --git a/libi2pd/TunnelPool.cpp b/libi2pd/TunnelPool.cpp index 784dc84e..22563e2d 100644 --- a/libi2pd/TunnelPool.cpp +++ b/libi2pd/TunnelPool.cpp @@ -29,6 +29,10 @@ namespace tunnel m_NumInboundTunnels (numInboundTunnels), m_NumOutboundTunnels (numOutboundTunnels), m_IsActive (true), m_CustomPeerSelector(nullptr) { + if (m_NumInboundTunnels > TUNNEL_POOL_MAX_INBOUND_TUNNELS_QUANTITY) + m_NumInboundTunnels = TUNNEL_POOL_MAX_INBOUND_TUNNELS_QUANTITY; + if (m_NumOutboundTunnels > TUNNEL_POOL_MAX_OUTBOUND_TUNNELS_QUANTITY) + m_NumOutboundTunnels = TUNNEL_POOL_MAX_OUTBOUND_TUNNELS_QUANTITY; m_NextManageTime = i2p::util::GetSecondsSinceEpoch () + rand () % TUNNEL_POOL_MANAGE_INTERVAL; } diff --git a/libi2pd/TunnelPool.h b/libi2pd/TunnelPool.h index d1024d04..4742a1f6 100644 --- a/libi2pd/TunnelPool.h +++ b/libi2pd/TunnelPool.h @@ -28,6 +28,8 @@ namespace i2p namespace tunnel { const int TUNNEL_POOL_MANAGE_INTERVAL = 10; // in seconds + const int TUNNEL_POOL_MAX_INBOUND_TUNNELS_QUANTITY = 16; + const int TUNNEL_POOL_MAX_OUTBOUND_TUNNELS_QUANTITY = 16; class Tunnel; class InboundTunnel;