From 72bd784fb5824c9f29118df21131596722e74c13 Mon Sep 17 00:00:00 2001 From: Jonathan Hui Date: Tue, 30 Aug 2016 20:52:07 -0700 Subject: [PATCH] Set AQ_Retry_Timeout before incrementing AQ_Failures. (#495) --- src/core/thread/address_resolver.cpp | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/src/core/thread/address_resolver.cpp b/src/core/thread/address_resolver.cpp index 2206d2276..f4e981f26 100644 --- a/src/core/thread/address_resolver.cpp +++ b/src/core/thread/address_resolver.cpp @@ -652,14 +652,16 @@ void AddressResolver::HandleTimer() if (mCache[i].mTimeout == 0) { - mCache[i].mFailures++; mCache[i].mRetryTimeout = static_cast(kAddressQueryInitialRetryDelay * (1 << mCache[i].mFailures)); - if (mCache[i].mRetryTimeout > kAddressQueryMaxRetryDelay) + if (mCache[i].mRetryTimeout < kAddressQueryMaxRetryDelay) + { + mCache[i].mFailures++; + } + else { mCache[i].mRetryTimeout = kAddressQueryMaxRetryDelay; - mCache[i].mFailures--; } mMeshForwarder.HandleResolved(mCache[i].mTarget, kThreadError_Drop);