diff options
Diffstat (limited to 'src')
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, |