diff --git a/router/java/src/net/i2p/router/transport/udp/EstablishmentManager.java b/router/java/src/net/i2p/router/transport/udp/EstablishmentManager.java index 1a99c095cdcf01daa2443efbdbd20bccdbe21eec..db5a7db2236e41f848f4645f351a475f46852c41 100644 --- a/router/java/src/net/i2p/router/transport/udp/EstablishmentManager.java +++ b/router/java/src/net/i2p/router/transport/udp/EstablishmentManager.java @@ -21,6 +21,7 @@ import net.i2p.data.i2np.I2NPMessage; import net.i2p.router.OutNetMessage; import net.i2p.router.Router; import net.i2p.router.RouterContext; +import net.i2p.router.networkdb.kademlia.FloodfillNetworkDatabaseFacade; import net.i2p.util.I2PThread; import net.i2p.util.Log; import net.i2p.util.SimpleScheduler; @@ -561,7 +562,10 @@ public class EstablishmentManager { private void sendCreated(InboundEstablishState state) { long now = _context.clock().now(); // don't offer if we are approaching max connections (see comments above) - if ((!_transport.introducersRequired()) && _transport.haveCapacity()) { + // Also don't offer if we are floodfill, as this extends the max idle time + // and we will have lots of incoming conns + if ((!_transport.introducersRequired()) && _transport.haveCapacity() && + !((FloodfillNetworkDatabaseFacade)_context.netDb()).floodfillEnabled()) { // offer to relay // (perhaps we should check our bw usage and/or how many peers we are // already offering introducing?)