diff --git a/src/net/sf/briar/plugins/tcp/LanTcpPlugin.java b/src/net/sf/briar/plugins/tcp/LanTcpPlugin.java index 358bb0782eb5e1773d98fbe6a1c8e4a2c02b4d5c..47bf16d7ec2fa1d888ee4944d9b430bfcca3d15e 100644 --- a/src/net/sf/briar/plugins/tcp/LanTcpPlugin.java +++ b/src/net/sf/briar/plugins/tcp/LanTcpPlugin.java @@ -146,6 +146,7 @@ class LanTcpPlugin extends TcpPlugin { try { // Connect back on the advertised TCP port Socket s = new Socket(packet.getAddress(), port); + s.setSoTimeout(0); return new TcpTransportConnection(s); } catch(IOException e) { if(LOG.isLoggable(WARNING)) @@ -286,7 +287,9 @@ class LanTcpPlugin extends TcpPlugin { try { int wait = (int) (Math.min(end, nextPacket) - now); ss.setSoTimeout(wait < 1 ? 1 : wait); - return new TcpTransportConnection(ss.accept()); + Socket s = ss.accept(); + s.setSoTimeout(0); + return new TcpTransportConnection(s); } catch(SocketTimeoutException e) { now = System.currentTimeMillis(); if(now < end) { @@ -310,12 +313,4 @@ class LanTcpPlugin extends TcpPlugin { } return null; } - - private void tryToClose(ServerSocket ss) { - try { - ss.close(); - } catch(IOException e) { - if(LOG.isLoggable(WARNING)) LOG.warning(e.toString()); - } - } } diff --git a/src/net/sf/briar/plugins/tcp/TcpPlugin.java b/src/net/sf/briar/plugins/tcp/TcpPlugin.java index 10c704e9be69661475417a7f9a61be07e3cc0422..0ca380a0109128216fc1910a7adeb130a5e88581 100644 --- a/src/net/sf/briar/plugins/tcp/TcpPlugin.java +++ b/src/net/sf/briar/plugins/tcp/TcpPlugin.java @@ -99,7 +99,7 @@ abstract class TcpPlugin implements DuplexPlugin { acceptContactConnections(ss); } - private void tryToClose(ServerSocket ss) { + protected void tryToClose(ServerSocket ss) { try { ss.close(); } catch(IOException e) { @@ -120,6 +120,7 @@ abstract class TcpPlugin implements DuplexPlugin { Socket s; try { s = ss.accept(); + s.setSoTimeout(0); } catch(IOException e) { // This is expected when the socket is closed if(LOG.isLoggable(INFO)) LOG.info(e.toString()); @@ -179,6 +180,7 @@ abstract class TcpPlugin implements DuplexPlugin { Socket s = new Socket(); if(addr == null || s == null) return null; try { + s.setSoTimeout(0); s.connect(addr); return new TcpTransportConnection(s); } catch(IOException e) {