diff options
author | Benoit Foucher <benoit@zeroc.com> | 2007-05-29 13:04:38 +0000 |
---|---|---|
committer | Benoit Foucher <benoit@zeroc.com> | 2007-05-29 13:04:38 +0000 |
commit | 34509f307ce087d0a64063b92b095d3d960faaf2 (patch) | |
tree | 5b69b1d3209aa4826b00f8ce3c2996a99f515427 /java/src/IceInternal/Network.java | |
parent | Moved setting of SO_REUSEADDR and added comment (diff) | |
download | ice-34509f307ce087d0a64063b92b095d3d960faaf2.tar.bz2 ice-34509f307ce087d0a64063b92b095d3d960faaf2.tar.xz ice-34509f307ce087d0a64063b92b095d3d960faaf2.zip |
Set SO_REUSEADDR for server sockets. Bug 2079.
Diffstat (limited to 'java/src/IceInternal/Network.java')
-rw-r--r-- | java/src/IceInternal/Network.java | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/java/src/IceInternal/Network.java b/java/src/IceInternal/Network.java index 4f01e678c54..f4fafc7ba17 100644 --- a/java/src/IceInternal/Network.java +++ b/java/src/IceInternal/Network.java @@ -222,6 +222,22 @@ public final class Network } } + public static void + setReuseAddress(java.nio.channels.ServerSocketChannel fd, boolean reuse) + { + try + { + fd.socket().setReuseAddress(reuse); + } + catch(java.io.IOException ex) + { + closeSocketNoThrow(fd); + Ice.SocketException se = new Ice.SocketException(); + se.initCause(ex); + throw se; + } + } + public static java.net.InetSocketAddress doBind(java.nio.channels.ServerSocketChannel fd, java.net.InetSocketAddress addr) { |