diff --git a/router/java/src/net/i2p/router/transport/ntcp/EventPumper.java b/router/java/src/net/i2p/router/transport/ntcp/EventPumper.java index bee5a6b764fc5f3e6c7f7c9f41c67130e6fdab36..bbf9e4f1f1b0fe92661c9286940a0ab0220545e1 100644 --- a/router/java/src/net/i2p/router/transport/ntcp/EventPumper.java +++ b/router/java/src/net/i2p/router/transport/ntcp/EventPumper.java @@ -21,6 +21,7 @@ import java.util.concurrent.LinkedBlockingQueue; import net.i2p.I2PAppContext; import net.i2p.data.RouterIdentity; +import net.i2p.router.CommSystemFacade; import net.i2p.router.RouterContext; import net.i2p.router.transport.FIFOBandwidthLimiter; import net.i2p.util.ConcurrentHashSet; @@ -499,7 +500,8 @@ class EventPumper implements Runnable { return; } // BUGFIX for firewalls. --Sponge - chan.socket().setKeepAlive(true); + if (_context.commSystem().getReachabilityStatus() != CommSystemFacade.STATUS_OK) + chan.socket().setKeepAlive(true); SelectionKey ckey = chan.register(_selector, SelectionKey.OP_READ); new NTCPConnection(_context, _transport, chan, ckey); @@ -519,7 +521,8 @@ class EventPumper implements Runnable { _log.debug("processing connect for " + con + ": connected? " + connected); if (connected) { // BUGFIX for firewalls. --Sponge - chan.socket().setKeepAlive(true); + if (_context.commSystem().getReachabilityStatus() != CommSystemFacade.STATUS_OK) + chan.socket().setKeepAlive(true); con.setKey(key); con.outboundConnected(); _context.statManager().addRateData("ntcp.connectSuccessful", 1);