diff options
Diffstat (limited to 'jurt')
-rw-r--r-- | jurt/com/sun/star/lib/connections/socket/socketAcceptor.java | 8 | ||||
-rw-r--r-- | jurt/com/sun/star/lib/connections/socket/socketConnector.java | 6 |
2 files changed, 9 insertions, 5 deletions
diff --git a/jurt/com/sun/star/lib/connections/socket/socketAcceptor.java b/jurt/com/sun/star/lib/connections/socket/socketAcceptor.java index e3dbea71c14b..85790dfdd21e 100644 --- a/jurt/com/sun/star/lib/connections/socket/socketAcceptor.java +++ b/jurt/com/sun/star/lib/connections/socket/socketAcceptor.java @@ -28,9 +28,7 @@ import com.sun.star.lang.XSingleServiceFactory; import com.sun.star.registry.XRegistryKey; import java.io.IOException; -import java.net.InetAddress; -import java.net.ServerSocket; -import java.net.Socket; +import java.net.*; /** * A component that implements the <code>XAcceptor</code> interface. @@ -152,7 +150,9 @@ public final class socketAcceptor implements XAcceptor { System.err.println("##### " + getClass().getName() + ".accept: accepted " + socket); } - if (tcpNoDelay != null) { + // 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()) { socket.setTcpNoDelay(tcpNoDelay.booleanValue()); } return new SocketConnection(acceptingDescription, socket); diff --git a/jurt/com/sun/star/lib/connections/socket/socketConnector.java b/jurt/com/sun/star/lib/connections/socket/socketConnector.java index a0c49370c6b2..1d3c2b1b57c3 100644 --- a/jurt/com/sun/star/lib/connections/socket/socketConnector.java +++ b/jurt/com/sun/star/lib/connections/socket/socketConnector.java @@ -131,8 +131,10 @@ public final class socketConnector implements XConnector { throw new ConnectionSetupException(e); } Socket socket = null; + boolean isLoopbackAddress = false; for (int i = 0; i < adr.length; ++i) { try { + isLoopbackAddress = adr[i].isLoopbackAddress(); socket = new Socket(adr[i], desc.getPort()); break; } catch (IOException e) { @@ -142,7 +144,9 @@ public final class socketConnector implements XConnector { } XConnection con; try { - if (desc.getTcpNoDelay() != null) + // we enable tcpNoDelay for loopback connections because + // it can make a significant speed difference on linux boxes. + if (desc.getTcpNoDelay() != null || isLoopbackAddress) socket.setTcpNoDelay(desc.getTcpNoDelay().booleanValue()); con = new SocketConnection(connectionDescription, socket); |