From 4edebccf63720f0e4aef7ea78fcc37d175b93de7 Mon Sep 17 00:00:00 2001 From: Vincent Lucas Date: Tue, 14 May 2013 11:15:17 +0200 Subject: [PATCH] Clears the default DNS cache when supplied records for primary server changed. --- .../impl/protocol/jabber/FailoverConnectionMonitor.java | 3 +++ src/net/java/sip/communicator/util/NetworkUtils.java | 9 +++++++++ 2 files changed, 12 insertions(+) diff --git a/src/net/java/sip/communicator/impl/protocol/jabber/FailoverConnectionMonitor.java b/src/net/java/sip/communicator/impl/protocol/jabber/FailoverConnectionMonitor.java index e3293dfca..ac0abc759 100644 --- a/src/net/java/sip/communicator/impl/protocol/jabber/FailoverConnectionMonitor.java +++ b/src/net/java/sip/communicator/impl/protocol/jabber/FailoverConnectionMonitor.java @@ -242,6 +242,9 @@ public void run() if(isConnectedToPrimary(currentRecords)) return; + // Clear DNS cache. + NetworkUtils.clearDefaultDNSCache(); + SRVRecord srv = getPrimaryServerRecord(currentRecords); ConnectionConfiguration confConn = new ConnectionConfiguration( diff --git a/src/net/java/sip/communicator/util/NetworkUtils.java b/src/net/java/sip/communicator/util/NetworkUtils.java index 90923ec5d..5e885895f 100644 --- a/src/net/java/sip/communicator/util/NetworkUtils.java +++ b/src/net/java/sip/communicator/util/NetworkUtils.java @@ -1462,4 +1462,13 @@ private static void moveSelectedSRVRecord( } } } + + /** + * Clears the default DNS cache. + */ + public static void clearDefaultDNSCache() + { + Cache defaultCache = Lookup.getDefaultCache(DClass.IN); + defaultCache.clearCache(); + } }