diff options
author | Sebastien Vincent <seb@jitsi.org> | 2010-06-26 07:53:16 +0000 |
---|---|---|
committer | Sebastien Vincent <seb@jitsi.org> | 2010-06-26 07:53:16 +0000 |
commit | f846ab82f45d9cefb8263f8cf8246646086b633c (patch) | |
tree | 9e944f750bca5228f40fe217a73ed5f35be0f914 | |
parent | f6aa3d8661a7a82ba3d14ba61ef1b6d772a64175 (diff) | |
download | jitsi-f846ab82f45d9cefb8263f8cf8246646086b633c.zip jitsi-f846ab82f45d9cefb8263f8cf8246646086b633c.tar.gz jitsi-f846ab82f45d9cefb8263f8cf8246646086b633c.tar.bz2 |
Avoid using DNS resolver for an IP address.
-rw-r--r-- | src/net/java/sip/communicator/impl/protocol/sip/AddressResolverImpl.java | 24 |
1 files changed, 21 insertions, 3 deletions
diff --git a/src/net/java/sip/communicator/impl/protocol/sip/AddressResolverImpl.java b/src/net/java/sip/communicator/impl/protocol/sip/AddressResolverImpl.java index e245bb3..f120864 100644 --- a/src/net/java/sip/communicator/impl/protocol/sip/AddressResolverImpl.java +++ b/src/net/java/sip/communicator/impl/protocol/sip/AddressResolverImpl.java @@ -35,21 +35,39 @@ public class AddressResolverImpl try { String transport = inputAddress.getTransport(); + String hostAddress = inputAddress.getHost(); if (transport == null) transport = ListeningPoint.UDP; InetSocketAddress host; - if (transport.equalsIgnoreCase(ListeningPoint.TLS)) + // if it is a textual IP address, do no try to resolve it + if(NetworkUtils.isValidIPAddress(hostAddress)) + { + byte[] addr = null; + + addr = IPAddressUtil.textToNumericFormatV4(hostAddress); + + // not an IPv4, try IPv6 + if (addr == null) + { + addr = IPAddressUtil.textToNumericFormatV6(hostAddress); + } + + host = new InetSocketAddress( + InetAddress.getByAddress(hostAddress, addr), + inputAddress.getPort()); + } + else if (transport.equalsIgnoreCase(ListeningPoint.TLS)) { host = NetworkUtils.getSRVRecord( - "sips", ListeningPoint.TCP, inputAddress.getHost()); + "sips", ListeningPoint.TCP, hostAddress); } else { host = NetworkUtils.getSRVRecord( - "sip", transport, inputAddress.getHost()); + "sip", transport, hostAddress); } if (host != null) |