summaryrefslogtreecommitdiff
path: root/java/src/IceInternal/TcpEndpoint.java
diff options
context:
space:
mode:
authorMarc Laukien <marc@zeroc.com>2003-11-06 05:10:05 +0000
committerMarc Laukien <marc@zeroc.com>2003-11-06 05:10:05 +0000
commit7816254e21f180386d95f2408d424d7ca59f0767 (patch)
tree84f6b6f16e434c74054d9cfaf89c8513d607dc27 /java/src/IceInternal/TcpEndpoint.java
parentChanged FD_SETSIZE to 1024 under Windows. (diff)
downloadice-7816254e21f180386d95f2408d424d7ca59f0767.tar.bz2
ice-7816254e21f180386d95f2408d424d7ca59f0767.tar.xz
ice-7816254e21f180386d95f2408d424d7ca59f0767.zip
DNSException fix
Diffstat (limited to 'java/src/IceInternal/TcpEndpoint.java')
-rw-r--r--java/src/IceInternal/TcpEndpoint.java61
1 files changed, 43 insertions, 18 deletions
diff --git a/java/src/IceInternal/TcpEndpoint.java b/java/src/IceInternal/TcpEndpoint.java
index 4718887ff76..64fc04a2fae 100644
--- a/java/src/IceInternal/TcpEndpoint.java
+++ b/java/src/IceInternal/TcpEndpoint.java
@@ -432,24 +432,49 @@ final class TcpEndpoint implements Endpoint
//
// We do the most time-consuming part of the comparison last.
//
- java.net.InetSocketAddress laddr;
- java.net.InetSocketAddress raddr;
- laddr = Network.getAddress(_host, _port);
- raddr = Network.getAddress(p._host, p._port);
- byte[] larr = laddr.getAddress().getAddress();
- byte[] rarr = raddr.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;
- }
- }
+ java.net.InetSocketAddress laddr = null;
+ try
+ {
+ laddr = Network.getAddress(_host, _port);
+ }
+ catch(Ice.DNSException ex)
+ {
+ }
+
+ java.net.InetSocketAddress raddr = null;
+ try
+ {
+ raddr = Network.getAddress(p._host, p._port);
+ }
+ catch(Ice.DNSException ex)
+ {
+ }
+
+ if(laddr == null && raddr != null)
+ {
+ return -1;
+ }
+ else if(raddr == null && laddr != null)
+ {
+ return 1;
+ }
+ else if(laddr != null && raddr != null)
+ {
+ byte[] larr = laddr.getAddress().getAddress();
+ byte[] rarr = raddr.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;