From b9ac11e74135b41914f92f90f12cfe5039fb757d Mon Sep 17 00:00:00 2001 From: Buke Po Date: Thu, 21 Sep 2017 23:42:53 +0800 Subject: [PATCH] [address-resolver] verify query sent successfully (#2210) --- src/core/thread/address_resolver.cpp | 4 ++-- src/core/thread/address_resolver.hpp | 1 + 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/src/core/thread/address_resolver.cpp b/src/core/thread/address_resolver.cpp index a87f3d23d..a7593caec 100644 --- a/src/core/thread/address_resolver.cpp +++ b/src/core/thread/address_resolver.cpp @@ -273,13 +273,13 @@ otError AddressResolver::Resolve(const Ip6::Address &aEid, uint16_t &aRloc16) switch (entry->mState) { case Cache::kStateInvalid: + SuccessOrExit(error = SendAddressQuery(aEid)); entry->mTarget = aEid; entry->mRloc16 = Mac::kShortAddrInvalid; entry->mTimeout = kAddressQueryTimeout; entry->mFailures = 0; entry->mRetryTimeout = kAddressQueryInitialRetryDelay; entry->mState = Cache::kStateQuery; - SendAddressQuery(aEid); error = OT_ERROR_ADDRESS_QUERY; break; @@ -290,8 +290,8 @@ otError AddressResolver::Resolve(const Ip6::Address &aEid, uint16_t &aRloc16) } else if (entry->mTimeout == 0 && entry->mRetryTimeout == 0) { + SuccessOrExit(error = SendAddressQuery(aEid)); entry->mTimeout = kAddressQueryTimeout; - SendAddressQuery(aEid); error = OT_ERROR_ADDRESS_QUERY; } else diff --git a/src/core/thread/address_resolver.hpp b/src/core/thread/address_resolver.hpp index b66605c71..47f14bf8f 100644 --- a/src/core/thread/address_resolver.hpp +++ b/src/core/thread/address_resolver.hpp @@ -117,6 +117,7 @@ public: * * @retval OT_ERROR_NONE Successfully provided the RLOC16. * @retval OT_ERROR_ADDRESS_QUERY Initiated an Address Query. + * @retval OT_ERROR_NO_BUFS Insufficient buffer space available to send Address Query. * */ otError Resolve(const Ip6::Address &aEid, Mac::ShortAddress &aRloc16);