From e13026425408c51f35c68b35995f9ad9be64fe2d Mon Sep 17 00:00:00 2001
From: zzz <zzz@mail.i2p>
Date: Tue, 2 Oct 2012 12:41:31 +0000
Subject: [PATCH]  * NTCP: Only set keepalive if firewalled

---
 .../src/net/i2p/router/transport/ntcp/EventPumper.java     | 7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)

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 bee5a6b764..bbf9e4f1f1 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);
-- 
GitLab