From 9ffdcc76858bc01150727345de4dfd0ef40ed8c0 Mon Sep 17 00:00:00 2001 From: Noel Grandin Date: Thu, 30 Jul 2015 15:38:41 +0200 Subject: fix use of TCP_NODELAY for localhost URP connections we implemented this logic in the C++ URP code a while back, but the Java code was not correctly updated. Change-Id: I377d7150f1adb69d6f86d9b4f3406163aaf85aea Reviewed-on: https://gerrit.libreoffice.org/17427 Reviewed-by: Noel Grandin Tested-by: Noel Grandin --- jurt/com/sun/star/lib/connections/socket/socketAcceptor.java | 5 ++++- jurt/com/sun/star/lib/connections/socket/socketConnector.java | 4 +++- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/jurt/com/sun/star/lib/connections/socket/socketAcceptor.java b/jurt/com/sun/star/lib/connections/socket/socketAcceptor.java index 022f89142c75..da33625e498d 100644 --- a/jurt/com/sun/star/lib/connections/socket/socketAcceptor.java +++ b/jurt/com/sun/star/lib/connections/socket/socketAcceptor.java @@ -152,9 +152,12 @@ public final class socketAcceptor implements XAcceptor { } // we enable tcpNoDelay for loopback connections because // it can make a significant speed difference on linux boxes. - if (tcpNoDelay != null || ((InetSocketAddress)socket.getRemoteSocketAddress()).getAddress().isLoopbackAddress()) { + if (tcpNoDelay != null) { socket.setTcpNoDelay(tcpNoDelay.booleanValue()); } + else if (((InetSocketAddress)socket.getRemoteSocketAddress()).getAddress().isLoopbackAddress()) { + socket.setTcpNoDelay(true); + } return new SocketConnection(acceptingDescription, socket); } catch(IOException e) { diff --git a/jurt/com/sun/star/lib/connections/socket/socketConnector.java b/jurt/com/sun/star/lib/connections/socket/socketConnector.java index fc44639a5feb..c169b59a6aeb 100644 --- a/jurt/com/sun/star/lib/connections/socket/socketConnector.java +++ b/jurt/com/sun/star/lib/connections/socket/socketConnector.java @@ -146,8 +146,10 @@ public final class socketConnector implements XConnector { try { // we enable tcpNoDelay for loopback connections because // it can make a significant speed difference on linux boxes. - if (desc.getTcpNoDelay() != null || isLoopbackAddress) + if (desc.getTcpNoDelay() != null) socket.setTcpNoDelay(desc.getTcpNoDelay().booleanValue()); + else if (isLoopbackAddress) + socket.setTcpNoDelay(true); con = new SocketConnection(connectionDescription, socket); } catch (IOException e) { -- cgit