diff --git a/router/java/src/net/i2p/router/tunnel/pool/BuildHandler.java b/router/java/src/net/i2p/router/tunnel/pool/BuildHandler.java index ae17622e85661daa443b47d4ecc795cc6ca4de67..72b6835eaae6272397e306d65e602b97f600ed82 100644 --- a/router/java/src/net/i2p/router/tunnel/pool/BuildHandler.java +++ b/router/java/src/net/i2p/router/tunnel/pool/BuildHandler.java @@ -508,8 +508,15 @@ class BuildHandler { * Being a IBGW or OBEP generally leads to more connections, so if we are * approaching our connection limit (i.e. !haveCapacity()), * reject this request. + * + * Don't do this for class O, under the assumption that they are already talking + * to most of the routers, so there's no reason to reject. This may drive them + * to their conn. limits, but it's hopefully a temporary solution to the + * tunnel build congestion. As the net grows this will have to be revisited. */ + RouterInfo ri = _context.router().getRouterInfo(); if (response == 0 && + (ri == null || ri.getBandwidthTier().charAt(0) != 'O') && ((isInGW && ! _context.commSystem().haveInboundCapacity(87)) || (isOutEnd && ! _context.commSystem().haveOutboundCapacity(87)))) { _context.throttle().setTunnelStatus("Rejecting tunnels: Connection limit");