diff --git a/src/core/thread/mle_router.cpp b/src/core/thread/mle_router.cpp index c5cb365e0..fb00df5c4 100644 --- a/src/core/thread/mle_router.cpp +++ b/src/core/thread/mle_router.cpp @@ -251,7 +251,7 @@ void MleRouter::HandleChildStart(AttachMode aMode) switch (aMode) { case kAttachSameDowngrade: - IgnoreError(SendAddressRelease()); + SendAddressRelease(); // reset children info if any if (HasChildren()) @@ -3961,7 +3961,7 @@ exit: return error; } -otError MleRouter::SendAddressRelease(void) +void MleRouter::SendAddressRelease(void) { otError error = OT_ERROR_NONE; Ip6::MessageInfo messageInfo; @@ -3986,12 +3986,15 @@ otError MleRouter::SendAddressRelease(void) exit: - if (error != OT_ERROR_NONE && message != NULL) + if (error != OT_ERROR_NONE) { - message->Free(); - } + otLogWarnMle("Failed to send Address Release: %s", otThreadErrorToString(error)); - return error; + if (message != NULL) + { + message->Free(); + } + } } void MleRouter::HandleAddressSolicitResponse(void * aContext, diff --git a/src/core/thread/mle_router.hpp b/src/core/thread/mle_router.hpp index fa487db1b..cdeaca143 100644 --- a/src/core/thread/mle_router.hpp +++ b/src/core/thread/mle_router.hpp @@ -758,7 +758,7 @@ private: otError ProcessRouteTlv(const RouteTlv &aRoute); void StopAdvertiseTimer(void); otError SendAddressSolicit(ThreadStatusTlv::Status aStatus); - otError SendAddressRelease(void); + void SendAddressRelease(void); void SendAddressSolicitResponse(const Coap::Message & aRequest, const Router * aRouter, const Ip6::MessageInfo &aMessageInfo);