aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSebastien Vincent <seb@jitsi.org>2010-06-26 07:53:16 +0000
committerSebastien Vincent <seb@jitsi.org>2010-06-26 07:53:16 +0000
commitf846ab82f45d9cefb8263f8cf8246646086b633c (patch)
tree9e944f750bca5228f40fe217a73ed5f35be0f914
parentf6aa3d8661a7a82ba3d14ba61ef1b6d772a64175 (diff)
downloadjitsi-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.java24
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)