aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/net/java/sip/communicator/impl/dns/ConfigurableDnssecResolver.java (renamed from src/net/java/sip/communicator/plugin/desktoputil/dns/ConfigurableDnssecResolver.java)3
-rw-r--r--src/net/java/sip/communicator/impl/dns/DnsUtilActivator.java (renamed from src/net/java/sip/communicator/plugin/desktoputil/dns/DnsUtilActivator.java)36
-rw-r--r--src/net/java/sip/communicator/impl/dns/ParallelResolverImpl.java (renamed from src/net/java/sip/communicator/plugin/desktoputil/dns/ParallelResolver.java)35
-rw-r--r--src/net/java/sip/communicator/impl/dns/SecureMessage.java (renamed from src/net/java/sip/communicator/plugin/desktoputil/dns/SecureMessage.java)2
-rw-r--r--src/net/java/sip/communicator/impl/dns/SecureResolveMode.java (renamed from src/net/java/sip/communicator/plugin/desktoputil/dns/SecureResolveMode.java)2
-rw-r--r--src/net/java/sip/communicator/impl/dns/UnboundApi.java (renamed from src/net/java/sip/communicator/plugin/desktoputil/dns/UnboundApi.java)2
-rw-r--r--src/net/java/sip/communicator/impl/dns/UnboundException.java (renamed from src/net/java/sip/communicator/plugin/desktoputil/dns/UnboundException.java)2
-rw-r--r--src/net/java/sip/communicator/impl/dns/UnboundResolver.java (renamed from src/net/java/sip/communicator/plugin/desktoputil/dns/UnboundResolver.java)4
-rw-r--r--src/net/java/sip/communicator/impl/dns/UnboundResult.java (renamed from src/net/java/sip/communicator/plugin/desktoputil/dns/UnboundResult.java)2
-rw-r--r--src/net/java/sip/communicator/impl/dns/dns.manifest.mf (renamed from src/net/java/sip/communicator/plugin/desktoputil/dns/desktoputil.dns.manifest.mf)19
-rw-r--r--src/net/java/sip/communicator/impl/dns/dnsconfig/DnsConfigActivator.java (renamed from src/net/java/sip/communicator/plugin/dnsconfig/DnsConfigActivator.java)2
-rw-r--r--src/net/java/sip/communicator/impl/dns/dnsconfig/DnsContainerPanel.java (renamed from src/net/java/sip/communicator/plugin/dnsconfig/DnsContainerPanel.java)2
-rw-r--r--src/net/java/sip/communicator/impl/dns/dnsconfig/DnssecPanel.java (renamed from src/net/java/sip/communicator/plugin/dnsconfig/DnssecPanel.java)11
-rw-r--r--src/net/java/sip/communicator/impl/dns/dnsconfig/DnssecTableModel.java (renamed from src/net/java/sip/communicator/plugin/dnsconfig/DnssecTableModel.java)4
-rw-r--r--src/net/java/sip/communicator/impl/dns/dnsconfig/ParallelDnsPanel.java (renamed from src/net/java/sip/communicator/plugin/dnsconfig/ParallelDnsPanel.java)36
-rw-r--r--src/net/java/sip/communicator/impl/netaddr/NetworkAddressManagerServiceImpl.java4
-rw-r--r--src/net/java/sip/communicator/impl/netaddr/netaddr.manifest.mf3
-rw-r--r--src/net/java/sip/communicator/impl/protocol/icq/icq.provider.manifest.mf2
-rw-r--r--src/net/java/sip/communicator/impl/protocol/jabber/ProtocolProviderServiceJabberImpl.java3
-rw-r--r--src/net/java/sip/communicator/impl/protocol/jabber/jabber.provider.manifest.mf3
-rw-r--r--src/net/java/sip/communicator/impl/protocol/msn/ProtocolProviderServiceMsnImpl.java2
-rw-r--r--src/net/java/sip/communicator/impl/protocol/msn/msn.provider.manifest.mf5
-rw-r--r--src/net/java/sip/communicator/impl/protocol/sip/ProtocolProviderServiceSipImpl.java3
-rw-r--r--src/net/java/sip/communicator/impl/protocol/sip/net/AutoProxyConnection.java3
-rw-r--r--src/net/java/sip/communicator/impl/protocol/sip/net/ManualProxyConnection.java3
-rw-r--r--src/net/java/sip/communicator/impl/protocol/sip/net/ProxyConnection.java2
-rw-r--r--src/net/java/sip/communicator/impl/protocol/sip/sip.provider.manifest.mf3
-rw-r--r--src/net/java/sip/communicator/impl/protocol/yahoo/ProtocolProviderServiceYahooImpl.java2
-rw-r--r--src/net/java/sip/communicator/impl/protocol/yahoo/yahoo.provider.manifest.mf2
-rw-r--r--src/net/java/sip/communicator/plugin/desktoputil/desktoputil.manifest.mf1
-rw-r--r--src/net/java/sip/communicator/plugin/dnsconfig/dnsconfig.manifest.mf30
-rw-r--r--src/net/java/sip/communicator/service/dns/DnssecException.java (renamed from src/net/java/sip/communicator/plugin/desktoputil/dns/DnssecException.java)2
-rw-r--r--src/net/java/sip/communicator/service/dns/DnssecRuntimeException.java (renamed from src/net/java/sip/communicator/plugin/desktoputil/dns/DnssecRuntimeException.java)2
-rw-r--r--src/net/java/sip/communicator/service/dns/ParallelResolver.java211
-rw-r--r--src/net/java/sip/communicator/service/dns/dns.manifest.mf8
-rw-r--r--src/net/java/sip/communicator/util/NetworkUtils.java (renamed from src/net/java/sip/communicator/plugin/desktoputil/NetworkUtils.java)21
-rw-r--r--src/net/java/sip/communicator/util/UtilActivator.java18
-rw-r--r--src/net/java/sip/communicator/util/util.manifest.mf1
38 files changed, 361 insertions, 135 deletions
diff --git a/src/net/java/sip/communicator/plugin/desktoputil/dns/ConfigurableDnssecResolver.java b/src/net/java/sip/communicator/impl/dns/ConfigurableDnssecResolver.java
index d2f4fce..b793e01 100644
--- a/src/net/java/sip/communicator/plugin/desktoputil/dns/ConfigurableDnssecResolver.java
+++ b/src/net/java/sip/communicator/impl/dns/ConfigurableDnssecResolver.java
@@ -4,7 +4,7 @@
* Distributable under LGPL license.
* See terms of license at gnu.org.
*/
-package net.java.sip.communicator.plugin.desktoputil.dns;
+package net.java.sip.communicator.impl.dns;
import java.awt.*;
import java.awt.event.*;
@@ -12,6 +12,7 @@ import java.util.*;
import javax.swing.*;
+import net.java.sip.communicator.service.dns.*;
import net.java.sip.communicator.service.notification.*;
import net.java.sip.communicator.util.Logger;
import net.java.sip.communicator.plugin.desktoputil.*;
diff --git a/src/net/java/sip/communicator/plugin/desktoputil/dns/DnsUtilActivator.java b/src/net/java/sip/communicator/impl/dns/DnsUtilActivator.java
index 9253701..fd086c5 100644
--- a/src/net/java/sip/communicator/plugin/desktoputil/dns/DnsUtilActivator.java
+++ b/src/net/java/sip/communicator/impl/dns/DnsUtilActivator.java
@@ -4,8 +4,10 @@
* Distributable under LGPL license.
* See terms of license at gnu.org.
*/
-package net.java.sip.communicator.plugin.desktoputil.dns;
+package net.java.sip.communicator.impl.dns;
+import net.java.sip.communicator.impl.dns.dnsconfig.*;
+import net.java.sip.communicator.service.dns.*;
import net.java.sip.communicator.service.notification.*;
import net.java.sip.communicator.service.resources.*;
import net.java.sip.communicator.util.*;
@@ -25,18 +27,6 @@ public class DnsUtilActivator
implements BundleActivator
{
/**
- * The name of the property that enables or disables the DNSSEC resolver
- * (instead of a normal, non-validating local resolver).
- */
- public static final String PNAME_DNSSEC_RESOLVER_ENABLED
- = "net.java.sip.communicator.util.dns.DNSSEC_ENABLED";
-
- /**
- * Default value of @see PNAME_DNSSEC_RESOLVER_ENABLED.
- */
- public static final boolean PDEFAULT_DNSSEC_RESOLVER_ENABLED = false;
-
- /**
* The name of the property that sets custom nameservers to use for all DNS
* lookups when DNSSEC is enabled. Multiple servers are separated by a comma
* (,).
@@ -56,6 +46,8 @@ public class DnsUtilActivator
private static ResourceManagementService resourceService;
private static BundleContext bundleContext;
+ private static DnsConfigActivator dnsConfigActivator;
+
/**
* Calls <tt>Thread.setUncaughtExceptionHandler()</tt>
*
@@ -71,9 +63,14 @@ public class DnsUtilActivator
{
bundleContext = context;
+ bundleContext.registerService(
+ ParallelResolver.class.getName(),
+ new ParallelResolverImpl(),
+ null);
+
if(getConfigurationService().getBoolean(
- PNAME_DNSSEC_RESOLVER_ENABLED,
- PDEFAULT_DNSSEC_RESOLVER_ENABLED))
+ ParallelResolverImpl.PNAME_DNSSEC_RESOLVER_ENABLED,
+ ParallelResolverImpl.PDEFAULT_DNSSEC_RESOLVER_ENABLED))
{
getNotificationService().
registerDefaultNotificationForEvent(
@@ -82,6 +79,9 @@ public class DnsUtilActivator
null, null);
}
refreshResolver();
+
+ dnsConfigActivator = new DnsConfigActivator();
+ dnsConfigActivator.start(context);
}
/**
@@ -91,8 +91,8 @@ public class DnsUtilActivator
public static void refreshResolver()
{
if(getConfigurationService().getBoolean(
- PNAME_DNSSEC_RESOLVER_ENABLED,
- PDEFAULT_DNSSEC_RESOLVER_ENABLED))
+ ParallelResolverImpl.PNAME_DNSSEC_RESOLVER_ENABLED,
+ ParallelResolverImpl.PDEFAULT_DNSSEC_RESOLVER_ENABLED))
{
logger.trace("DNSSEC is enabled");
ConfigurableDnssecResolver res = new ConfigurableDnssecResolver();
@@ -127,6 +127,8 @@ public class DnsUtilActivator
public void stop(BundleContext context)
throws Exception
{
+ if (dnsConfigActivator != null)
+ dnsConfigActivator.stop(context);
}
/**
diff --git a/src/net/java/sip/communicator/plugin/desktoputil/dns/ParallelResolver.java b/src/net/java/sip/communicator/impl/dns/ParallelResolverImpl.java
index 105e49d..bd317b3 100644
--- a/src/net/java/sip/communicator/plugin/desktoputil/dns/ParallelResolver.java
+++ b/src/net/java/sip/communicator/impl/dns/ParallelResolverImpl.java
@@ -4,13 +4,13 @@
* Distributable under LGPL license.
* See terms of license at gnu.org.
*/
-package net.java.sip.communicator.plugin.desktoputil.dns;
+package net.java.sip.communicator.impl.dns;
import java.io.*;
import java.net.*;
import java.util.*;
-import net.java.sip.communicator.plugin.desktoputil.*;
+import net.java.sip.communicator.service.dns.*;
import net.java.sip.communicator.util.*;
import org.xbill.DNS.*;
@@ -34,14 +34,15 @@ import org.xbill.DNS.*;
*
* @author Emil Ivov
*/
-public class ParallelResolver implements Resolver
+public class ParallelResolverImpl
+ implements ParallelResolver
{
/**
* The <tt>Logger</tt> used by the <tt>ParallelResolver</tt>
* class and its instances for logging output.
*/
private static final Logger logger = Logger
- .getLogger(ParallelResolver.class.getName());
+ .getLogger(ParallelResolverImpl.class.getName());
/**
* Indicates whether we are currently in a mode where all DNS queries are
@@ -129,10 +130,10 @@ public class ParallelResolver implements Resolver
{
try
{
- currentDnsPatience = DesktopUtilActivator.getConfigurationService()
+ currentDnsPatience = DnsUtilActivator.getConfigurationService()
.getLong(PNAME_DNS_PATIENCE, DNS_PATIENCE);
currentDnsRedemption
- = DesktopUtilActivator.getConfigurationService()
+ = DnsUtilActivator.getConfigurationService()
.getInt(PNAME_DNS_REDEMPTION, DNS_REDEMPTION);
}
catch(Throwable t)
@@ -150,7 +151,7 @@ public class ParallelResolver implements Resolver
*
* @param resolver the resolver we'd like to use by default from now on.
*/
- public static void setDefaultResolver(Resolver resolver)
+ public void setDefaultResolver(Resolver resolver)
{
defaultResolver = resolver;
}
@@ -161,7 +162,7 @@ public class ParallelResolver implements Resolver
*
* @return the resolver this class consults first.
*/
- public static Resolver getDefaultResolver()
+ public Resolver getDefaultResolver()
{
return defaultResolver;
}
@@ -169,17 +170,16 @@ public class ParallelResolver implements Resolver
/**
* An extended resolver that would be encapsulating all backup resolvers.
*/
- private final ExtendedResolver backupResolver;
+ private ExtendedResolver backupResolver;
/**
- * Creates a <tt>ParallelResolver</tt> that would use the specified array
- * of <tt>backupServers</tt> if the default DNS doesn't seem to be doing
- * that well.
+ * Sets the specified array of <tt>backupServers</tt> used if the default
+ * DNS doesn't seem to be doing that well.
*
* @param backupServers the list of backup DNS servers that we should use
* if, and only if, the default servers don't seem to work that well.
*/
- public ParallelResolver(InetSocketAddress[] backupServers)
+ public void setBackupServers(InetSocketAddress[] backupServers)
{
try
{
@@ -691,4 +691,13 @@ public class ParallelResolver implements Resolver
}
}
}
+
+ /**
+ * Sets a DNSSEC resolver as default resolver on lookup when DNSSEC is
+ * enabled; creates a standard lookup otherwise.
+ */
+ public void refreshResolver()
+ {
+ DnsUtilActivator.refreshResolver();
+ }
}
diff --git a/src/net/java/sip/communicator/plugin/desktoputil/dns/SecureMessage.java b/src/net/java/sip/communicator/impl/dns/SecureMessage.java
index 28f8fcb..bd73068 100644
--- a/src/net/java/sip/communicator/plugin/desktoputil/dns/SecureMessage.java
+++ b/src/net/java/sip/communicator/impl/dns/SecureMessage.java
@@ -4,7 +4,7 @@
* Distributable under LGPL license.
* See terms of license at gnu.org.
*/
-package net.java.sip.communicator.plugin.desktoputil.dns;
+package net.java.sip.communicator.impl.dns;
import java.io.*;
diff --git a/src/net/java/sip/communicator/plugin/desktoputil/dns/SecureResolveMode.java b/src/net/java/sip/communicator/impl/dns/SecureResolveMode.java
index 77c21d9..d03e2d8 100644
--- a/src/net/java/sip/communicator/plugin/desktoputil/dns/SecureResolveMode.java
+++ b/src/net/java/sip/communicator/impl/dns/SecureResolveMode.java
@@ -4,7 +4,7 @@
* Distributable under LGPL license.
* See terms of license at gnu.org.
*/
-package net.java.sip.communicator.plugin.desktoputil.dns;
+package net.java.sip.communicator.impl.dns;
/**
* Defines how DNSSEC validation errors should be handled.
diff --git a/src/net/java/sip/communicator/plugin/desktoputil/dns/UnboundApi.java b/src/net/java/sip/communicator/impl/dns/UnboundApi.java
index bd53010..b18db9e 100644
--- a/src/net/java/sip/communicator/plugin/desktoputil/dns/UnboundApi.java
+++ b/src/net/java/sip/communicator/impl/dns/UnboundApi.java
@@ -4,7 +4,7 @@
* Distributable under LGPL license.
* See terms of license at gnu.org.
*/
-package net.java.sip.communicator.plugin.desktoputil.dns;
+package net.java.sip.communicator.impl.dns;
/**
* Wrapper for the JUnbound JNI wrapper.
diff --git a/src/net/java/sip/communicator/plugin/desktoputil/dns/UnboundException.java b/src/net/java/sip/communicator/impl/dns/UnboundException.java
index 0367e2f..0b118d6 100644
--- a/src/net/java/sip/communicator/plugin/desktoputil/dns/UnboundException.java
+++ b/src/net/java/sip/communicator/impl/dns/UnboundException.java
@@ -4,7 +4,7 @@
* Distributable under LGPL license.
* See terms of license at gnu.org.
*/
-package net.java.sip.communicator.plugin.desktoputil.dns;
+package net.java.sip.communicator.impl.dns;
/**
* Exception that is being thrown when native Unbound code resulted in an error.
diff --git a/src/net/java/sip/communicator/plugin/desktoputil/dns/UnboundResolver.java b/src/net/java/sip/communicator/impl/dns/UnboundResolver.java
index abeb6ba..0f29795 100644
--- a/src/net/java/sip/communicator/plugin/desktoputil/dns/UnboundResolver.java
+++ b/src/net/java/sip/communicator/impl/dns/UnboundResolver.java
@@ -4,14 +4,14 @@
* Distributable under LGPL license.
* See terms of license at gnu.org.
*/
-package net.java.sip.communicator.plugin.desktoputil.dns;
+package net.java.sip.communicator.impl.dns;
import java.io.*;
import java.net.*;
import java.util.*;
import java.util.concurrent.*;
-import net.java.sip.communicator.plugin.desktoputil.*;
+import net.java.sip.communicator.service.dns.*;
import net.java.sip.communicator.util.*;
import org.xbill.DNS.*;
diff --git a/src/net/java/sip/communicator/plugin/desktoputil/dns/UnboundResult.java b/src/net/java/sip/communicator/impl/dns/UnboundResult.java
index 0be905d..6737666 100644
--- a/src/net/java/sip/communicator/plugin/desktoputil/dns/UnboundResult.java
+++ b/src/net/java/sip/communicator/impl/dns/UnboundResult.java
@@ -4,7 +4,7 @@
* Distributable under LGPL license.
* See terms of license at gnu.org.
*/
-package net.java.sip.communicator.plugin.desktoputil.dns;
+package net.java.sip.communicator.impl.dns;
/**
* Class that contains the answer to query processed by the native Unbound
diff --git a/src/net/java/sip/communicator/plugin/desktoputil/dns/desktoputil.dns.manifest.mf b/src/net/java/sip/communicator/impl/dns/dns.manifest.mf
index e289126..81fb931 100644
--- a/src/net/java/sip/communicator/plugin/desktoputil/dns/desktoputil.dns.manifest.mf
+++ b/src/net/java/sip/communicator/impl/dns/dns.manifest.mf
@@ -1,6 +1,6 @@
-Bundle-Activator: net.java.sip.communicator.plugin.desktoputil.dns.DnsUtilActivator
+Bundle-Activator: net.java.sip.communicator.impl.dns.DnsUtilActivator
Bundle-Name: SIP Communicator DNS Utility Packages
-Bundle-SymbolicName: net.java.sip.communicator.plugin.desktoputil.dns
+Bundle-SymbolicName: net.java.sip.communicator.impl.dns
Bundle-Description: A bundle that export packages with DNS utility classes.
Bundle-Vendor: jitsi.org
Bundle-Version: 0.0.1
@@ -10,10 +10,17 @@ Import-Package: org.jitsi.util,
net.java.sip.communicator.util,
net.java.sip.communicator.plugin.desktoputil,
org.jitsi.service.resources,
- net.java.sip.communicator.service.resources,
+ net.java.sip.communicator.service.resources,
+ net.java.sip.communicator.service.notification,
+ net.java.sip.communicator.service.dns,
+ net.java.sip.communicator.service.gui,
org.jitsi.service.configuration,
- net.java.sip.communicator.service.notification,
sun.net.dns,
org.xbill.DNS,
- javax.swing
-Export-Package: net.java.sip.communicator.plugin.desktoputil.dns
+ javax.swing,
+ javax.swing.event,
+ javax.swing.text,
+ javax.swing.border,
+ javax.swing.plaf.basic,
+ javax.swing.table
+Export-Package: net.java.sip.communicator.impl.dns \ No newline at end of file
diff --git a/src/net/java/sip/communicator/plugin/dnsconfig/DnsConfigActivator.java b/src/net/java/sip/communicator/impl/dns/dnsconfig/DnsConfigActivator.java
index c8acab7b..e2eb961 100644
--- a/src/net/java/sip/communicator/plugin/dnsconfig/DnsConfigActivator.java
+++ b/src/net/java/sip/communicator/impl/dns/dnsconfig/DnsConfigActivator.java
@@ -4,7 +4,7 @@
* Distributable under LGPL license.
* See terms of license at gnu.org.
*/
-package net.java.sip.communicator.plugin.dnsconfig;
+package net.java.sip.communicator.impl.dns.dnsconfig;
import java.util.*;
diff --git a/src/net/java/sip/communicator/plugin/dnsconfig/DnsContainerPanel.java b/src/net/java/sip/communicator/impl/dns/dnsconfig/DnsContainerPanel.java
index 1d2bb9c..59945c4 100644
--- a/src/net/java/sip/communicator/plugin/dnsconfig/DnsContainerPanel.java
+++ b/src/net/java/sip/communicator/impl/dns/dnsconfig/DnsContainerPanel.java
@@ -4,7 +4,7 @@
* Distributable under LGPL license.
* See terms of license at gnu.org.
*/
-package net.java.sip.communicator.plugin.dnsconfig;
+package net.java.sip.communicator.impl.dns.dnsconfig;
import net.java.sip.communicator.plugin.desktoputil.*;
import net.java.sip.communicator.util.*;
diff --git a/src/net/java/sip/communicator/plugin/dnsconfig/DnssecPanel.java b/src/net/java/sip/communicator/impl/dns/dnsconfig/DnssecPanel.java
index 2d44a21..9ce5f35 100644
--- a/src/net/java/sip/communicator/plugin/dnsconfig/DnssecPanel.java
+++ b/src/net/java/sip/communicator/impl/dns/dnsconfig/DnssecPanel.java
@@ -4,7 +4,7 @@
* Distributable under LGPL license.
* See terms of license at gnu.org.
*/
-package net.java.sip.communicator.plugin.dnsconfig;
+package net.java.sip.communicator.impl.dns.dnsconfig;
import java.awt.*;
import java.awt.event.*;
@@ -14,9 +14,10 @@ import javax.swing.*;
import javax.swing.plaf.basic.*;
import javax.swing.table.*;
+import net.java.sip.communicator.impl.dns.*;
import net.java.sip.communicator.plugin.desktoputil.*;
+import net.java.sip.communicator.service.dns.*;
import net.java.sip.communicator.util.*;
-import net.java.sip.communicator.plugin.desktoputil.dns.*;
import org.jitsi.service.configuration.*;
import org.jitsi.service.resources.*;
@@ -201,8 +202,8 @@ public class DnssecPanel
)
);
chkEnabled.setSelected(config.getBoolean(
- DnsUtilActivator.PNAME_DNSSEC_RESOLVER_ENABLED,
- DnsUtilActivator.PDEFAULT_DNSSEC_RESOLVER_ENABLED
+ ParallelResolver.PNAME_DNSSEC_RESOLVER_ENABLED,
+ ParallelResolver.PDEFAULT_DNSSEC_RESOLVER_ENABLED
));
chkAbsolute.setSelected(config.getBoolean(
NetworkUtils.PNAME_DNS_ALWAYS_ABSOLUTE,
@@ -260,7 +261,7 @@ public class DnssecPanel
chkEnabled.setSelected(true);
}
config.setProperty(
- DnsUtilActivator.PNAME_DNSSEC_RESOLVER_ENABLED,
+ ParallelResolver.PNAME_DNSSEC_RESOLVER_ENABLED,
chkEnabled.isSelected());
}
catch (Exception ex)
diff --git a/src/net/java/sip/communicator/plugin/dnsconfig/DnssecTableModel.java b/src/net/java/sip/communicator/impl/dns/dnsconfig/DnssecTableModel.java
index 6ebb319..b2029df 100644
--- a/src/net/java/sip/communicator/plugin/dnsconfig/DnssecTableModel.java
+++ b/src/net/java/sip/communicator/impl/dns/dnsconfig/DnssecTableModel.java
@@ -4,7 +4,7 @@
* Distributable under LGPL license.
* See terms of license at gnu.org.
*/
-package net.java.sip.communicator.plugin.dnsconfig;
+package net.java.sip.communicator.impl.dns.dnsconfig;
import java.awt.*;
import java.util.*;
@@ -13,7 +13,7 @@ import java.util.List;
import javax.swing.table.*;
import net.java.sip.communicator.util.*;
-import net.java.sip.communicator.plugin.desktoputil.dns.*;
+import net.java.sip.communicator.impl.dns.*;
import org.jitsi.service.configuration.*;
import org.jitsi.service.resources.*;
diff --git a/src/net/java/sip/communicator/plugin/dnsconfig/ParallelDnsPanel.java b/src/net/java/sip/communicator/impl/dns/dnsconfig/ParallelDnsPanel.java
index 8315a2f..0059d11 100644
--- a/src/net/java/sip/communicator/plugin/dnsconfig/ParallelDnsPanel.java
+++ b/src/net/java/sip/communicator/impl/dns/dnsconfig/ParallelDnsPanel.java
@@ -4,21 +4,21 @@
* Distributable under LGPL license.
* See terms of license at gnu.org.
*/
-package net.java.sip.communicator.plugin.dnsconfig;
-
-import static net.java.sip.communicator.plugin.desktoputil.NetworkUtils.DEFAULT_BACKUP_RESOLVER;
-import static net.java.sip.communicator.plugin.desktoputil.NetworkUtils.PDEFAULT_BACKUP_RESOLVER_ENABLED;
-import static net.java.sip.communicator.plugin.desktoputil.NetworkUtils.PNAME_BACKUP_RESOLVER;
-import static net.java.sip.communicator.plugin.desktoputil.NetworkUtils.PNAME_BACKUP_RESOLVER_ENABLED;
-import static net.java.sip.communicator.plugin.desktoputil.NetworkUtils.PNAME_BACKUP_RESOLVER_FALLBACK_IP;
-import static net.java.sip.communicator.plugin.desktoputil.NetworkUtils.PNAME_BACKUP_RESOLVER_PORT;
-import static net.java.sip.communicator.plugin.desktoputil.NetworkUtils.getDefaultDnsPort;
-import static net.java.sip.communicator.plugin.desktoputil.NetworkUtils.isIPv4Address;
-import static net.java.sip.communicator.plugin.desktoputil.NetworkUtils.isIPv6Address;
-import static net.java.sip.communicator.plugin.desktoputil.dns.ParallelResolver.DNS_PATIENCE;
-import static net.java.sip.communicator.plugin.desktoputil.dns.ParallelResolver.DNS_REDEMPTION;
-import static net.java.sip.communicator.plugin.desktoputil.dns.ParallelResolver.PNAME_DNS_PATIENCE;
-import static net.java.sip.communicator.plugin.desktoputil.dns.ParallelResolver.PNAME_DNS_REDEMPTION;
+package net.java.sip.communicator.impl.dns.dnsconfig;
+
+import static net.java.sip.communicator.util.NetworkUtils.DEFAULT_BACKUP_RESOLVER;
+import static net.java.sip.communicator.util.NetworkUtils.PDEFAULT_BACKUP_RESOLVER_ENABLED;
+import static net.java.sip.communicator.util.NetworkUtils.PNAME_BACKUP_RESOLVER;
+import static net.java.sip.communicator.util.NetworkUtils.PNAME_BACKUP_RESOLVER_ENABLED;
+import static net.java.sip.communicator.util.NetworkUtils.PNAME_BACKUP_RESOLVER_FALLBACK_IP;
+import static net.java.sip.communicator.util.NetworkUtils.PNAME_BACKUP_RESOLVER_PORT;
+import static net.java.sip.communicator.util.NetworkUtils.getDefaultDnsPort;
+import static net.java.sip.communicator.util.NetworkUtils.isIPv4Address;
+import static net.java.sip.communicator.util.NetworkUtils.isIPv6Address;
+import static net.java.sip.communicator.service.dns.ParallelResolver.DNS_PATIENCE;
+import static net.java.sip.communicator.service.dns.ParallelResolver.DNS_REDEMPTION;
+import static net.java.sip.communicator.service.dns.ParallelResolver.PNAME_DNS_PATIENCE;
+import static net.java.sip.communicator.service.dns.ParallelResolver.PNAME_DNS_REDEMPTION;
import java.awt.*;
import java.awt.event.*;
@@ -30,8 +30,8 @@ import javax.swing.event.*;
import javax.swing.text.*;
import net.java.sip.communicator.plugin.desktoputil.*;
+import net.java.sip.communicator.service.dns.*;
import net.java.sip.communicator.util.*;
-import net.java.sip.communicator.plugin.desktoputil.dns.*;
import org.jitsi.service.configuration.*;
import org.jitsi.service.resources.*;
@@ -208,8 +208,8 @@ public class ParallelDnsPanel
public void updateDnssecState()
{
boolean isDnssec = configService.getBoolean(
- DnsUtilActivator.PNAME_DNSSEC_RESOLVER_ENABLED,
- DnsUtilActivator.PDEFAULT_DNSSEC_RESOLVER_ENABLED);
+ ParallelResolver.PNAME_DNSSEC_RESOLVER_ENABLED,
+ ParallelResolver.PDEFAULT_DNSSEC_RESOLVER_ENABLED);
if(isDnssec)
chkBackupDnsEnabled.setSelected(false);
chkBackupDnsEnabled.setEnabled(!isDnssec);
diff --git a/src/net/java/sip/communicator/impl/netaddr/NetworkAddressManagerServiceImpl.java b/src/net/java/sip/communicator/impl/netaddr/NetworkAddressManagerServiceImpl.java
index b0652b3..d0fc64d 100644
--- a/src/net/java/sip/communicator/impl/netaddr/NetworkAddressManagerServiceImpl.java
+++ b/src/net/java/sip/communicator/impl/netaddr/NetworkAddressManagerServiceImpl.java
@@ -13,12 +13,12 @@ import java.net.*;
import java.text.*;
import java.util.*;
+import net.java.sip.communicator.service.dns.*;
import net.java.sip.communicator.service.netaddr.*;
import net.java.sip.communicator.service.netaddr.event.*;
import net.java.sip.communicator.util.*;
import net.java.sip.communicator.util.Logger;
-import net.java.sip.communicator.plugin.desktoputil.NetworkUtils;
-import net.java.sip.communicator.plugin.desktoputil.dns.*;
+import net.java.sip.communicator.util.NetworkUtils;
import org.ice4j.*;
import org.ice4j.ice.*;
diff --git a/src/net/java/sip/communicator/impl/netaddr/netaddr.manifest.mf b/src/net/java/sip/communicator/impl/netaddr/netaddr.manifest.mf
index e2d0c8a..9b181f2 100644
--- a/src/net/java/sip/communicator/impl/netaddr/netaddr.manifest.mf
+++ b/src/net/java/sip/communicator/impl/netaddr/netaddr.manifest.mf
@@ -8,8 +8,7 @@ Import-Package: org.jitsi.service.configuration,
org.jitsi.service.packetlogging,
org.jitsi.util,
net.java.sip.communicator.util,
- net.java.sip.communicator.plugin.desktoputil,
- net.java.sip.communicator.plugin.desktoputil.dns,
+ net.java.sip.communicator.service.dns,
net.java.sip.communicator.service.sysactivity,
net.java.sip.communicator.service.sysactivity.event,
org.osgi.framework,
diff --git a/src/net/java/sip/communicator/impl/protocol/icq/icq.provider.manifest.mf b/src/net/java/sip/communicator/impl/protocol/icq/icq.provider.manifest.mf
index cd34840..6dcb407 100644
--- a/src/net/java/sip/communicator/impl/protocol/icq/icq.provider.manifest.mf
+++ b/src/net/java/sip/communicator/impl/protocol/icq/icq.provider.manifest.mf
@@ -10,7 +10,7 @@ Import-Package: org.osgi.framework,
org.jitsi.service.configuration,
org.jitsi.service.resources, net.java.sip.communicator.service.resources,
net.java.sip.communicator.util,
- net.java.sip.communicator.plugin.desktoputil.dns,
+ net.java.sip.communicator.service.dns,
net.java.sip.communicator.service.protocol,
net.java.sip.communicator.service.protocol.icqconstants,
net.java.sip.communicator.service.protocol.aimconstants,
diff --git a/src/net/java/sip/communicator/impl/protocol/jabber/ProtocolProviderServiceJabberImpl.java b/src/net/java/sip/communicator/impl/protocol/jabber/ProtocolProviderServiceJabberImpl.java
index efe780b..5467fdc 100644
--- a/src/net/java/sip/communicator/impl/protocol/jabber/ProtocolProviderServiceJabberImpl.java
+++ b/src/net/java/sip/communicator/impl/protocol/jabber/ProtocolProviderServiceJabberImpl.java
@@ -28,9 +28,8 @@ import net.java.sip.communicator.impl.protocol.jabber.extensions.keepalive.*;
import net.java.sip.communicator.impl.protocol.jabber.extensions.messagecorrection.*;
import net.java.sip.communicator.impl.protocol.jabber.extensions.version.*;
import net.java.sip.communicator.impl.protocol.jabber.sasl.*;
-import net.java.sip.communicator.plugin.desktoputil.*;
-import net.java.sip.communicator.plugin.desktoputil.dns.*;
import net.java.sip.communicator.service.certificate.*;
+import net.java.sip.communicator.service.dns.*;
import net.java.sip.communicator.service.protocol.*;
import net.java.sip.communicator.service.protocol.event.*;
import net.java.sip.communicator.service.protocol.jabberconstants.*;
diff --git a/src/net/java/sip/communicator/impl/protocol/jabber/jabber.provider.manifest.mf b/src/net/java/sip/communicator/impl/protocol/jabber/jabber.provider.manifest.mf
index ef7ec44..56f0287 100644
--- a/src/net/java/sip/communicator/impl/protocol/jabber/jabber.provider.manifest.mf
+++ b/src/net/java/sip/communicator/impl/protocol/jabber/jabber.provider.manifest.mf
@@ -25,8 +25,7 @@ Import-Package: ch.imvs.sdes4j.srtp,
net.java.sip.communicator.service.protocol.whiteboardobjects,
net.java.sip.communicator.service.resources,
net.java.sip.communicator.util,
- net.java.sip.communicator.plugin.desktoputil,
- net.java.sip.communicator.plugin.desktoputil.dns,
+ net.java.sip.communicator.service.dns,
org.ice4j,
org.ice4j.ice,
org.ice4j.ice.harvest,
diff --git a/src/net/java/sip/communicator/impl/protocol/msn/ProtocolProviderServiceMsnImpl.java b/src/net/java/sip/communicator/impl/protocol/msn/ProtocolProviderServiceMsnImpl.java
index f2b4475..5fc5f13 100644
--- a/src/net/java/sip/communicator/impl/protocol/msn/ProtocolProviderServiceMsnImpl.java
+++ b/src/net/java/sip/communicator/impl/protocol/msn/ProtocolProviderServiceMsnImpl.java
@@ -9,10 +9,10 @@ package net.java.sip.communicator.impl.protocol.msn;
import java.net.*;
import java.nio.channels.*;
+import net.java.sip.communicator.service.dns.*;
import net.java.sip.communicator.service.protocol.*;
import net.java.sip.communicator.service.protocol.event.*;
import net.java.sip.communicator.util.*;
-import net.java.sip.communicator.plugin.desktoputil.dns.*;
import net.sf.jml.*;
import net.sf.jml.event.*;
import net.sf.jml.exception.*;
diff --git a/src/net/java/sip/communicator/impl/protocol/msn/msn.provider.manifest.mf b/src/net/java/sip/communicator/impl/protocol/msn/msn.provider.manifest.mf
index 8739e6c..e366d17 100644
--- a/src/net/java/sip/communicator/impl/protocol/msn/msn.provider.manifest.mf
+++ b/src/net/java/sip/communicator/impl/protocol/msn/msn.provider.manifest.mf
@@ -31,9 +31,10 @@ Import-Package: org.apache.commons.logging,
javax.imageio,
org.jitsi.service.configuration,
org.jitsi.service.fileaccess,
- org.jitsi.service.resources, net.java.sip.communicator.service.resources,
+ org.jitsi.service.resources,
+ net.java.sip.communicator.service.resources,
net.java.sip.communicator.util,
- net.java.sip.communicator.plugin.desktoputil.dns,
+ net.java.sip.communicator.service.dns,
net.java.sip.communicator.service.protocol,
net.java.sip.communicator.service.protocol.msnconstants,
net.java.sip.communicator.service.protocol.event
diff --git a/src/net/java/sip/communicator/impl/protocol/sip/ProtocolProviderServiceSipImpl.java b/src/net/java/sip/communicator/impl/protocol/sip/ProtocolProviderServiceSipImpl.java
index 88506d1..e409b48 100644
--- a/src/net/java/sip/communicator/impl/protocol/sip/ProtocolProviderServiceSipImpl.java
+++ b/src/net/java/sip/communicator/impl/protocol/sip/ProtocolProviderServiceSipImpl.java
@@ -21,12 +21,11 @@ import javax.sip.message.*;
import net.java.sip.communicator.impl.protocol.sip.net.*;
import net.java.sip.communicator.impl.protocol.sip.security.*;
+import net.java.sip.communicator.service.dns.*;
import net.java.sip.communicator.service.protocol.*;
import net.java.sip.communicator.service.protocol.event.*;
import net.java.sip.communicator.util.*;
import net.java.sip.communicator.util.Logger;
-import net.java.sip.communicator.plugin.desktoputil.*;
-import net.java.sip.communicator.plugin.desktoputil.dns.*;
import org.jitsi.service.version.Version;
import org.jitsi.util.*;
diff --git a/src/net/java/sip/communicator/impl/protocol/sip/net/AutoProxyConnection.java b/src/net/java/sip/communicator/impl/protocol/sip/net/AutoProxyConnection.java
index 912953b..30fc233 100644
--- a/src/net/java/sip/communicator/impl/protocol/sip/net/AutoProxyConnection.java
+++ b/src/net/java/sip/communicator/impl/protocol/sip/net/AutoProxyConnection.java
@@ -18,9 +18,8 @@ import java.text.*;
import javax.sip.*;
import net.java.sip.communicator.impl.protocol.sip.*;
+import net.java.sip.communicator.service.dns.*;
import net.java.sip.communicator.util.*;
-import net.java.sip.communicator.plugin.desktoputil.*;
-import net.java.sip.communicator.plugin.desktoputil.dns.*;
/**
* Implementation of the autodetect proxy connection. Tries to resolve a SIP-
diff --git a/src/net/java/sip/communicator/impl/protocol/sip/net/ManualProxyConnection.java b/src/net/java/sip/communicator/impl/protocol/sip/net/ManualProxyConnection.java
index 2be9684..19725cd 100644
--- a/src/net/java/sip/communicator/impl/protocol/sip/net/ManualProxyConnection.java
+++ b/src/net/java/sip/communicator/impl/protocol/sip/net/ManualProxyConnection.java
@@ -15,9 +15,8 @@ import java.net.*;
import java.text.*;
import net.java.sip.communicator.impl.protocol.sip.*;
+import net.java.sip.communicator.service.dns.*;
import net.java.sip.communicator.util.*;
-import net.java.sip.communicator.plugin.desktoputil.*;
-import net.java.sip.communicator.plugin.desktoputil.dns.*;
/**
* Implementation of the manually configured SIP proxy connection. IP Address
diff --git a/src/net/java/sip/communicator/impl/protocol/sip/net/ProxyConnection.java b/src/net/java/sip/communicator/impl/protocol/sip/net/ProxyConnection.java
index e85d4b7..f21ff0c 100644
--- a/src/net/java/sip/communicator/impl/protocol/sip/net/ProxyConnection.java
+++ b/src/net/java/sip/communicator/impl/protocol/sip/net/ProxyConnection.java
@@ -6,7 +6,7 @@ import java.net.*;
import java.util.*;
import net.java.sip.communicator.impl.protocol.sip.*;
-import net.java.sip.communicator.plugin.desktoputil.dns.*;
+import net.java.sip.communicator.service.dns.*;
/**
* Abstract class for the determining the address for the SIP proxy.
diff --git a/src/net/java/sip/communicator/impl/protocol/sip/sip.provider.manifest.mf b/src/net/java/sip/communicator/impl/protocol/sip/sip.provider.manifest.mf
index c9d68fd..5e5e906 100644
--- a/src/net/java/sip/communicator/impl/protocol/sip/sip.provider.manifest.mf
+++ b/src/net/java/sip/communicator/impl/protocol/sip/sip.provider.manifest.mf
@@ -26,8 +26,7 @@ Import-Package: ch.imvs.sdes4j.srtp,
net.java.sip.communicator.service.protocol.media,
net.java.sip.communicator.service.resources,
net.java.sip.communicator.util,
- net.java.sip.communicator.plugin.desktoputil,
- net.java.sip.communicator.plugin.desktoputil.dns,
+ net.java.sip.communicator.service.dns,
org.apache.http,
org.apache.http.annotation,
org.apache.http.auth,
diff --git a/src/net/java/sip/communicator/impl/protocol/yahoo/ProtocolProviderServiceYahooImpl.java b/src/net/java/sip/communicator/impl/protocol/yahoo/ProtocolProviderServiceYahooImpl.java
index aec90d7..b20d9b9 100644
--- a/src/net/java/sip/communicator/impl/protocol/yahoo/ProtocolProviderServiceYahooImpl.java
+++ b/src/net/java/sip/communicator/impl/protocol/yahoo/ProtocolProviderServiceYahooImpl.java
@@ -8,10 +8,10 @@ package net.java.sip.communicator.impl.protocol.yahoo;
import java.io.*;
+import net.java.sip.communicator.service.dns.*;
import net.java.sip.communicator.service.protocol.*;
import net.java.sip.communicator.service.protocol.event.*;
import net.java.sip.communicator.util.*;
-import net.java.sip.communicator.plugin.desktoputil.dns.*;
import ymsg.network.*;
import ymsg.network.event.*;
diff --git a/src/net/java/sip/communicator/impl/protocol/yahoo/yahoo.provider.manifest.mf b/src/net/java/sip/communicator/impl/protocol/yahoo/yahoo.provider.manifest.mf
index 300aebd..35adf58 100644
--- a/src/net/java/sip/communicator/impl/protocol/yahoo/yahoo.provider.manifest.mf
+++ b/src/net/java/sip/communicator/impl/protocol/yahoo/yahoo.provider.manifest.mf
@@ -16,7 +16,7 @@ Import-Package: org.osgi.framework,
org.jitsi.service.configuration,
org.jitsi.service.resources, net.java.sip.communicator.service.resources,
net.java.sip.communicator.util,
- net.java.sip.communicator.plugin.desktoputil.dns,
+ net.java.sip.communicator.service.dns,
net.java.sip.communicator.service.protocol,
net.java.sip.communicator.service.protocol.yahooconstants,
net.java.sip.communicator.service.protocol.event
diff --git a/src/net/java/sip/communicator/plugin/desktoputil/desktoputil.manifest.mf b/src/net/java/sip/communicator/plugin/desktoputil/desktoputil.manifest.mf
index 01d79d3..aa657a9 100644
--- a/src/net/java/sip/communicator/plugin/desktoputil/desktoputil.manifest.mf
+++ b/src/net/java/sip/communicator/plugin/desktoputil/desktoputil.manifest.mf
@@ -31,7 +31,6 @@ Import-Package: com.sun.awt,
javax.xml.transform.stream,
net.java.sip.communicator.util,
net.java.sip.communicator.util.skin,
- net.java.sip.communicator.plugin.desktoputil.dns,
net.java.sip.communicator.service.gui,
net.java.sip.communicator.service.resources,
net.java.sip.communicator.service.keybindings,
diff --git a/src/net/java/sip/communicator/plugin/dnsconfig/dnsconfig.manifest.mf b/src/net/java/sip/communicator/plugin/dnsconfig/dnsconfig.manifest.mf
deleted file mode 100644
index 1961b0b..0000000
--- a/src/net/java/sip/communicator/plugin/dnsconfig/dnsconfig.manifest.mf
+++ /dev/null
@@ -1,30 +0,0 @@
-Bundle-Activator: net.java.sip.communicator.plugin.dnsconfig.DnsConfigActivator
-Bundle-Name: DNSConfig
-Bundle-Description: DNS configuration plugin
-Bundle-Vendor: jitsi.org
-Bundle-Version: 0.0.1
-System-Bundle: no
-Import-Package: org.osgi.framework,
- org.jitsi.service.configuration,
- org.jitsi.service.fileaccess,
- net.java.sip.communicator.service.gui,
- net.java.sip.communicator.service.gui.event,
- org.jitsi.service.resources, net.java.sip.communicator.service.resources,
- net.java.sip.communicator.util,
- net.java.sip.communicator.plugin.desktoputil.dns,
- net.java.sip.communicator.plugin.desktoputil,
- javax.swing,
- javax.swing.event,
- javax.swing.table,
- javax.swing.text,
- javax.swing.text.html,
- javax.accessibility,
- javax.net.ssl,
- javax.swing.plaf,
- javax.swing.plaf.metal,
- javax.swing.plaf.basic,
- javax.imageio,
- javax.swing.filechooser,
- javax.swing.tree,
- javax.swing.undo,
- javax.swing.border
diff --git a/src/net/java/sip/communicator/plugin/desktoputil/dns/DnssecException.java b/src/net/java/sip/communicator/service/dns/DnssecException.java
index 565a08a..195666d 100644
--- a/src/net/java/sip/communicator/plugin/desktoputil/dns/DnssecException.java
+++ b/src/net/java/sip/communicator/service/dns/DnssecException.java
@@ -4,7 +4,7 @@
* Distributable under LGPL license.
* See terms of license at gnu.org.
*/
-package net.java.sip.communicator.plugin.desktoputil.dns;
+package net.java.sip.communicator.service.dns;
/**
* Checked DNSSEC exception for code that knows how to deal with it.
diff --git a/src/net/java/sip/communicator/plugin/desktoputil/dns/DnssecRuntimeException.java b/src/net/java/sip/communicator/service/dns/DnssecRuntimeException.java
index b06ba5b..4229170 100644
--- a/src/net/java/sip/communicator/plugin/desktoputil/dns/DnssecRuntimeException.java
+++ b/src/net/java/sip/communicator/service/dns/DnssecRuntimeException.java
@@ -4,7 +4,7 @@
* Distributable under LGPL license.
* See terms of license at gnu.org.
*/
-package net.java.sip.communicator.plugin.desktoputil.dns;
+package net.java.sip.communicator.service.dns;
import java.net.*;
diff --git a/src/net/java/sip/communicator/service/dns/ParallelResolver.java b/src/net/java/sip/communicator/service/dns/ParallelResolver.java
new file mode 100644
index 0000000..7c172d4
--- /dev/null
+++ b/src/net/java/sip/communicator/service/dns/ParallelResolver.java
@@ -0,0 +1,211 @@
+/*
+ * Jitsi, the OpenSource Java VoIP and Instant Messaging client.
+ *
+ * Distributable under LGPL license.
+ * See terms of license at gnu.org.
+ */
+package net.java.sip.communicator.service.dns;
+
+import java.io.*;
+import java.net.*;
+import java.util.*;
+
+import org.xbill.DNS.*;
+
+/**
+ * The purpose of this class is to help avoid the significant delays that occur
+ * in networks where DNS servers would ignore SRV, NAPTR, and sometimes even
+ * A/AAAA queries (i.e. without even sending an error response). We also try to
+ * handle cases where DNS servers may return empty responses to some records.
+ * <p>
+ * We achieve this by entering a redundant mode whenever we detect an abnormal
+ * delay (longer than <tt>DNS_PATIENCE</tt>) while waiting for a DNS resonse,
+ * or when that response is not considered satisfying.
+ * <p>
+ * Once we enter redundant mode, we start duplicating all queries and sending
+ * them to both our primary and backup resolvers (in case we have any). We then
+ * always return the first response we get, regardless of who sent it.
+ * <p>
+ * We exit redundant mode after receiving <tt>DNS_REDEMPTION</tt> consecutive
+ * timely and correct responses from our primary resolver.
+ *
+ * @author Emil Ivov
+ */
+public interface ParallelResolver
+ extends Resolver
+{
+ /**
+ * The default number of milliseconds it takes us to get into redundant
+ * mode while waiting for a DNS query response.
+ */
+ public static final int DNS_PATIENCE = 1500;
+
+ /**
+ * The name of the property that allows us to override the default
+ * <tt>DNS_PATIENCE</tt> value.
+ */
+ public static final String PNAME_DNS_PATIENCE
+ = "net.java.sip.communicator.util.dns.DNS_PATIENCE";
+
+ /**
+ * The default number of times that the primary DNS would have to provide a
+ * faster response than the backup resolver before we consider it safe
+ * enough to exit redundant mode.
+ */
+ public static final int DNS_REDEMPTION = 3;
+
+ /**
+ * The name of the property that allows us to override the default
+ * <tt>DNS_REDEMPTION</tt> value.
+ */
+ public static final String PNAME_DNS_REDEMPTION
+ = "net.java.sip.communicator.util.dns.DNS_REDEMPTION";
+
+ /**
+ * The currently configured number of times that the primary DNS would have
+ * to provide a faster response than the backup resolver before we consider
+ * it safe enough to exit redundant mode.
+ */
+ public static int currentDnsRedemption = DNS_REDEMPTION;
+
+ /**
+ * The name of the property that enables or disables the DNSSEC resolver
+ * (instead of a normal, non-validating local resolver).
+ */
+ public static final String PNAME_DNSSEC_RESOLVER_ENABLED
+ = "net.java.sip.communicator.util.dns.DNSSEC_ENABLED";
+
+ /**
+ * Default value of @see PNAME_DNSSEC_RESOLVER_ENABLED.
+ */
+ public static final boolean PDEFAULT_DNSSEC_RESOLVER_ENABLED = false;
+
+ /**
+ * Replaces the default resolver used by this class. Mostly meant for
+ * debugging.
+ *
+ * @param resolver the resolver we'd like to use by default from now on.
+ */
+ public void setDefaultResolver(Resolver resolver);
+
+ /**
+ * Returns the default resolver used by this class. Mostly meant for
+ * debugging.
+ *
+ * @return the resolver this class consults first.
+ */
+ public Resolver getDefaultResolver();
+
+ /**
+ * Creates a <tt>ParallelResolver</tt> that would use the specified array
+ * of <tt>backupServers</tt> if the default DNS doesn't seem to be doing
+ * that well.
+ *
+ * @param backupServers the list of backup DNS servers that we should use
+ * if, and only if, the default servers don't seem to work that well.
+ */
+ public void setBackupServers(InetSocketAddress[] backupServers);
+
+ /**
+ * Sends a message and waits for a response.
+ *
+ * @param query The query to send.
+ * @return The response
+ *
+ * @throws IOException An error occurred while sending or receiving.
+ */
+ public Message send(Message query)
+ throws IOException;
+ /**
+ * Supposed to asynchronously send messages but not currently implemented.
+ *
+ * @param query The query to send
+ * @param listener The object containing the callbacks.
+ * @return An identifier, which is also a parameter in the callback
+ */
+ public Object sendAsync(final Message query,
+ final ResolverListener listener);
+
+ /**
+ * Sets the port to communicate on with the default servers.
+ *
+ * @param port The port to send messages to
+ */
+ public void setPort(int port);
+
+ /**
+ * Sets whether TCP connections will be sent by default with the default
+ * resolver. Backup servers would always be contacted the same way.
+ *
+ * @param flag Indicates whether TCP connections are made
+ */
+ public void setTCP(boolean flag);
+
+ /**
+ * Sets whether truncated responses will be ignored. If not, a truncated
+ * response over UDP will cause a retransmission over TCP. Backup servers
+ * would always be contacted the same way.
+ *
+ * @param flag Indicates whether truncated responses should be ignored.
+ */
+ public void setIgnoreTruncation(boolean flag);
+
+ /**
+ * Sets the EDNS version used on outgoing messages.
+ *
+ * @param level The EDNS level to use. 0 indicates EDNS0 and -1 indicates no
+ * EDNS.
+ * @throws IllegalArgumentException An invalid level was indicated.
+ */
+ public void setEDNS(int level);
+
+ /**
+ * Sets the EDNS information on outgoing messages.
+ *
+ * @param level The EDNS level to use. 0 indicates EDNS0 and -1 indicates no
+ * EDNS.
+ * @param payloadSize The maximum DNS packet size that this host is capable
+ * of receiving over UDP. If 0 is specified, the default (1280) is used.
+ * @param flags EDNS extended flags to be set in the OPT record.
+ * @param options EDNS options to be set in the OPT record, specified as a
+ * List of OPTRecord.Option elements.
+ *
+ * @throws IllegalArgumentException An invalid field was specified.
+ * @see OPTRecord
+ */
+ @SuppressWarnings("rawtypes") // that's the way it is in dnsjava
+ public void setEDNS(int level, int payloadSize, int flags, List options);
+
+ /**
+ * Specifies the TSIG key that messages will be signed with
+ * @param key The key
+ */
+ public void setTSIGKey(TSIG key);
+
+ /**
+ * Sets the amount of time to wait for a response before giving up.
+ *
+ * @param secs The number of seconds to wait.
+ * @param msecs The number of milliseconds to wait.
+ */
+ public void setTimeout(int secs, int msecs);
+
+ /**
+ * Sets the amount of time to wait for a response before giving up.
+ *
+ * @param secs The number of seconds to wait.
+ */
+ public void setTimeout(int secs);
+
+ /**
+ * Resets resolver configuration and populate our default resolver
+ * with the newly configured servers.
+ */
+ public void reset();
+
+ /**
+ * Sets a DNSSEC resolver as default resolver on lookup when DNSSEC is
+ * enabled; creates a standard lookup otherwise.
+ */
+ public void refreshResolver();
+}
diff --git a/src/net/java/sip/communicator/service/dns/dns.manifest.mf b/src/net/java/sip/communicator/service/dns/dns.manifest.mf
new file mode 100644
index 0000000..bf0eaf0
--- /dev/null
+++ b/src/net/java/sip/communicator/service/dns/dns.manifest.mf
@@ -0,0 +1,8 @@
+Bundle-Name: SIP Communicator DNS Utility Packages
+Bundle-SymbolicName: net.java.sip.communicator.service.dns
+Bundle-Description: A bundle that export packages with DNS utility classes.
+Bundle-Vendor: jitsi.org
+Bundle-Version: 0.0.1
+System-Bundle: yes
+Import-Package: org.xbill.DNS
+Export-Package: net.java.sip.communicator.service.dns
diff --git a/src/net/java/sip/communicator/plugin/desktoputil/NetworkUtils.java b/src/net/java/sip/communicator/util/NetworkUtils.java
index 7d76511..1099b86 100644
--- a/src/net/java/sip/communicator/plugin/desktoputil/NetworkUtils.java
+++ b/src/net/java/sip/communicator/util/NetworkUtils.java
@@ -4,7 +4,7 @@
* Distributable under LGPL license.
* See terms of license at gnu.org.
*/
-package net.java.sip.communicator.plugin.desktoputil;
+package net.java.sip.communicator.util;
import java.beans.*;
import java.net.*;
@@ -12,9 +12,9 @@ import java.text.*;
import java.util.*;
import java.util.concurrent.atomic.*;
-import net.java.sip.communicator.plugin.desktoputil.dns.*;
+import net.java.sip.communicator.service.dns.*;
import net.java.sip.communicator.service.netaddr.event.*;
-import net.java.sip.communicator.util.*;
+
import net.java.sip.communicator.util.SRVRecord;
import org.xbill.DNS.*;
@@ -1257,7 +1257,7 @@ public class NetworkUtils
/**
* Creates a new {@link Lookup} instance using our own {@link
- * ParallelResolver} if it is enabled and DNSSEC is not active.
+ * ParallelResolverImpl} if it is enabled and DNSSEC is not active.
*
* @param domain the domain we will be resolving
* @param type the type of the record we will be trying to obtain.
@@ -1307,8 +1307,8 @@ public class NetworkUtils
.getBoolean(PNAME_BACKUP_RESOLVER_ENABLED,
PDEFAULT_BACKUP_RESOLVER_ENABLED)
|| UtilActivator.getConfigurationService().getBoolean(
- DnsUtilActivator.PNAME_DNSSEC_RESOLVER_ENABLED,
- DnsUtilActivator.PDEFAULT_DNSSEC_RESOLVER_ENABLED
+ ParallelResolver.PNAME_DNSSEC_RESOLVER_ENABLED,
+ ParallelResolver.PDEFAULT_DNSSEC_RESOLVER_ENABLED
))
{
return lookup;
@@ -1361,8 +1361,13 @@ public class NetworkUtils
InetSocketAddress resolverSockAddr
= new InetSocketAddress(resolverAddress, rslvrPort);
- parallelResolver = new ParallelResolver(
+ parallelResolver = UtilActivator.getParallelResolver();
+ if (parallelResolver != null
+ && parallelResolver instanceof ParallelResolver)
+ {
+ ((ParallelResolver) parallelResolver).setBackupServers(
new InetSocketAddress[]{resolverSockAddr});
+ }
//listens for changes on the parallel DNS settings
UtilActivator.getConfigurationService()
@@ -1461,7 +1466,7 @@ public class NetworkUtils
ResolverConfig.refresh();
try
{
- DnsUtilActivator.refreshResolver();
+ ((ParallelResolver) parallelResolver).refreshResolver();
}
catch(Throwable t)
{
diff --git a/src/net/java/sip/communicator/util/UtilActivator.java b/src/net/java/sip/communicator/util/UtilActivator.java
index a6653ce..f0ee497 100644
--- a/src/net/java/sip/communicator/util/UtilActivator.java
+++ b/src/net/java/sip/communicator/util/UtilActivator.java
@@ -9,6 +9,7 @@ package net.java.sip.communicator.util;
//import java.awt.image.*;
import java.util.*;
+import net.java.sip.communicator.service.dns.*;
import net.java.sip.communicator.service.gui.*;
import net.java.sip.communicator.service.netaddr.*;
import net.java.sip.communicator.service.protocol.*;
@@ -49,6 +50,8 @@ public class UtilActivator
private static MediaService mediaService;
+ private static ParallelResolver parallelResolver;
+
static BundleContext bundleContext;
/**
@@ -262,4 +265,19 @@ public class UtilActivator
}
return providerFactoriesMap;
}
+
+ /**
+ *
+ * @return
+ */
+ public static ParallelResolver getParallelResolver()
+ {
+ if (parallelResolver == null)
+ {
+ parallelResolver
+ = ServiceUtils.getService( bundleContext,
+ ParallelResolver.class);
+ }
+ return parallelResolver;
+ }
}
diff --git a/src/net/java/sip/communicator/util/util.manifest.mf b/src/net/java/sip/communicator/util/util.manifest.mf
index fa7f105..bf4a4d6 100644
--- a/src/net/java/sip/communicator/util/util.manifest.mf
+++ b/src/net/java/sip/communicator/util/util.manifest.mf
@@ -38,6 +38,7 @@ Import-Package: com.sun.awt,
net.java.sip.communicator.service.contactlist,
net.java.sip.communicator.service.browserlauncher,
net.java.sip.communicator.service.protocol,
+ net.java.sip.communicator.service.dns,
org.apache.xml.serialize,
org.jitsi.service.configuration,
org.jitsi.service.neomedia,