diff options
author | Dwayne Boone <dwayne@zeroc.com> | 2007-06-07 17:01:30 +0000 |
---|---|---|
committer | Dwayne Boone <dwayne@zeroc.com> | 2007-06-07 17:01:30 +0000 |
commit | a737fcdae3a825d1a3df353a08df3c12285cde43 (patch) | |
tree | ce5c2f7aed6194cb4d94cb07e00b7380bc320e7b /java/src/IceInternal/Network.java | |
parent | Added missing IComparable (diff) | |
download | ice-a737fcdae3a825d1a3df353a08df3c12285cde43.tar.bz2 ice-a737fcdae3a825d1a3df353a08df3c12285cde43.tar.xz ice-a737fcdae3a825d1a3df353a08df3c12285cde43.zip |
More changes for bug 1996
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() { |