From aa206d034dfb744d9be28c5f0911061ebc33ead9 Mon Sep 17 00:00:00 2001 From: orignal Date: Thu, 11 Feb 2021 18:32:03 -0500 Subject: [PATCH] fixed #1373. Limit number of tunnels by 16 --- libi2pd/TunnelPool.cpp | 4 ++++ libi2pd/TunnelPool.h | 2 ++ 2 files changed, 6 insertions(+) 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;