diff options
Diffstat (limited to 'java/src/IceInternal/Network.java')
-rw-r--r-- | java/src/IceInternal/Network.java | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/java/src/IceInternal/Network.java b/java/src/IceInternal/Network.java index b23d1dda5d2..57e2b5b6867 100644 --- a/java/src/IceInternal/Network.java +++ b/java/src/IceInternal/Network.java @@ -703,6 +703,36 @@ public final class Network throw e; } + public static int + compareAddress(java.net.InetSocketAddress addr1, java.net.InetSocketAddress addr2) + { + if(addr1.getPort() < addr2.getPort()) + { + return -1; + } + else if(addr2.getPort() < addr1.getPort()) + { + return 1; + } + + byte[] larr = addr1.getAddress().getAddress(); + byte[] rarr = addr2.getAddress().getAddress(); + assert(larr.length == rarr.length); + for(int i = 0; i < larr.length; i++) + { + if(larr[i] < rarr[i]) + { + return -1; + } + else if(rarr[i] < larr[i]) + { + return 1; + } + } + + return 0; + } + public static java.net.InetAddress getLocalAddress() { |