From 290dd17835c39ca3bbb633f073663f534935bf64 Mon Sep 17 00:00:00 2001 From: Emil Ivov Date: Wed, 24 Nov 2010 21:28:17 +0000 Subject: [PATCH] Slightly improves redemption mechanism in parallel DNS queries --- .../sip/communicator/util/dns/ParallelResolver.java | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/src/net/java/sip/communicator/util/dns/ParallelResolver.java b/src/net/java/sip/communicator/util/dns/ParallelResolver.java index 5e2566152..6742acec4 100644 --- a/src/net/java/sip/communicator/util/dns/ParallelResolver.java +++ b/src/net/java/sip/communicator/util/dns/ParallelResolver.java @@ -250,12 +250,19 @@ public Message send(Message query) //check if it is time to end redundant mode. synchronized(redemptionLock) { - if(resolution.primaryResolverRespondedFirst - && redemptionStatus > 0) + if(!resolution.primaryResolverRespondedFirst) { + //primary DNS is still feeling shaky. we reinit redemption + //status in case we were about to cut the server some slack + redemptionStatus = currentDnsRedemption; + } + else + { + //primary server replied first. we let him redeem some dignity redemptionStatus --; + //yup, it's now time to end DNS redundant mode; - if(redemptionStatus == 0) + if(redemptionStatus <= 0) { redundantMode = false; logger.info("Primary DNS seems back in biz. "