diff --git a/src/core/backbone_router/local.cpp b/src/core/backbone_router/local.cpp index 1549b8123..69faae0b7 100644 --- a/src/core/backbone_router/local.cpp +++ b/src/core/backbone_router/local.cpp @@ -233,7 +233,7 @@ void Local::SetState(BackboneRouterState aState) if (mState == OT_BACKBONE_ROUTER_STATE_PRIMARY) { - IgnoreError(Get().RemoveUnicastAddress(mBackboneRouterPrimaryAloc)); + Get().RemoveUnicastAddress(mBackboneRouterPrimaryAloc); } else if (aState == OT_BACKBONE_ROUTER_STATE_PRIMARY) { @@ -357,7 +357,7 @@ void Local::ApplyMeshLocalPrefix(void) if (IsPrimary()) { - IgnoreError(Get().RemoveUnicastAddress(mBackboneRouterPrimaryAloc)); + Get().RemoveUnicastAddress(mBackboneRouterPrimaryAloc); mBackboneRouterPrimaryAloc.GetAddress().SetPrefix(Get().GetMeshLocalPrefix()); Get().AddUnicastAddress(mBackboneRouterPrimaryAloc); } diff --git a/src/core/common/linked_list.hpp b/src/core/common/linked_list.hpp index 9d4add2ba..ba82fb6ed 100644 --- a/src/core/common/linked_list.hpp +++ b/src/core/common/linked_list.hpp @@ -235,7 +235,7 @@ public: * @retval FALSE The linked list does not contain @p aEntry. * */ - bool Contains(Type &aEntry) const + bool Contains(const Type &aEntry) const { bool contains = false; diff --git a/src/core/meshcop/border_agent.cpp b/src/core/meshcop/border_agent.cpp index 18550c586..3d7a74cc2 100644 --- a/src/core/meshcop/border_agent.cpp +++ b/src/core/meshcop/border_agent.cpp @@ -660,7 +660,7 @@ void BorderAgent::HandleConnected(bool aConnected) else { otLogInfoMeshCoP("Commissioner disconnected"); - IgnoreError(Get().RemoveUnicastAddress(mCommissionerAloc)); + Get().RemoveUnicastAddress(mCommissionerAloc); SetState(OT_BORDER_AGENT_STATE_STARTED); } } @@ -751,8 +751,9 @@ void BorderAgent::ApplyMeshLocalPrefix(void) { VerifyOrExit(mState == OT_BORDER_AGENT_STATE_ACTIVE, OT_NOOP); - if (Get().RemoveUnicastAddress(mCommissionerAloc) == OT_ERROR_NONE) + if (Get().HasUnicastAddress(mCommissionerAloc)) { + Get().RemoveUnicastAddress(mCommissionerAloc); mCommissionerAloc.GetAddress().SetPrefix(Get().GetMeshLocalPrefix()); Get().AddUnicastAddress(mCommissionerAloc); } diff --git a/src/core/meshcop/commissioner.cpp b/src/core/meshcop/commissioner.cpp index 1f4f480ab..df2befd0d 100644 --- a/src/core/meshcop/commissioner.cpp +++ b/src/core/meshcop/commissioner.cpp @@ -193,7 +193,7 @@ otError Commissioner::Stop(bool aResign) if (mState == OT_COMMISSIONER_STATE_ACTIVE) { - IgnoreError(Get().RemoveUnicastAddress(mCommissionerAloc)); + Get().RemoveUnicastAddress(mCommissionerAloc); RemoveCoapResources(); ClearJoiners(); needResign = true; @@ -1110,7 +1110,7 @@ void Commissioner::ApplyMeshLocalPrefix(void) { VerifyOrExit(mState == OT_COMMISSIONER_STATE_ACTIVE, OT_NOOP); - IgnoreError(Get().RemoveUnicastAddress(mCommissionerAloc)); + Get().RemoveUnicastAddress(mCommissionerAloc); mCommissionerAloc.GetAddress().SetPrefix(Get().GetMeshLocalPrefix()); Get().AddUnicastAddress(mCommissionerAloc); diff --git a/src/core/net/dhcp6_client.cpp b/src/core/net/dhcp6_client.cpp index 152f49b38..75b3a7f7b 100644 --- a/src/core/net/dhcp6_client.cpp +++ b/src/core/net/dhcp6_client.cpp @@ -104,7 +104,7 @@ void Dhcp6Client::UpdateAddresses(void) if (!found) { - IgnoreError(Get().RemoveUnicastAddress(ia.mNetifAddress)); + Get().RemoveUnicastAddress(ia.mNetifAddress); mIdentityAssociations[i].mStatus = kIaStatusInvalid; } } diff --git a/src/core/net/dhcp6_server.cpp b/src/core/net/dhcp6_server.cpp index f5c0e1bca..25d509b13 100644 --- a/src/core/net/dhcp6_server.cpp +++ b/src/core/net/dhcp6_server.cpp @@ -493,7 +493,8 @@ void Dhcp6Server::ApplyMeshLocalPrefix(void) if (mPrefixAgents[i].IsValid()) { PrefixAgent *entry = &mPrefixAgents[i]; - IgnoreError(Get().RemoveUnicastAddress(entry->GetAloc())); + + Get().RemoveUnicastAddress(entry->GetAloc()); entry->GetAloc().GetAddress().SetPrefix(Get().GetMeshLocalPrefix()); Get().AddUnicastAddress(entry->GetAloc()); } diff --git a/src/core/net/netif.cpp b/src/core/net/netif.cpp index 3c9708f72..c7fb0ce01 100644 --- a/src/core/net/netif.cpp +++ b/src/core/net/netif.cpp @@ -452,11 +452,9 @@ exit: return; } -otError Netif::RemoveUnicastAddress(const NetifUnicastAddress &aAddress) +void Netif::RemoveUnicastAddress(const NetifUnicastAddress &aAddress) { - otError error; - - SuccessOrExit(error = mUnicastAddresses.Remove(aAddress)); + SuccessOrExit(mUnicastAddresses.Remove(aAddress)); Get().Signal(aAddress.mRloc ? OT_CHANGED_THREAD_RLOC_REMOVED : OT_CHANGED_IP6_ADDRESS_REMOVED); @@ -464,7 +462,7 @@ otError Netif::RemoveUnicastAddress(const NetifUnicastAddress &aAddress) mAddressCallback(&aAddress.mAddress, aAddress.mPrefixLength, /* IsAdded */ false, mAddressCallbackContext); exit: - return error; + return; } otError Netif::AddExternalUnicastAddress(const NetifUnicastAddress &aAddress) diff --git a/src/core/net/netif.hpp b/src/core/net/netif.hpp index 0ad5f5376..2cd2c44ed 100644 --- a/src/core/net/netif.hpp +++ b/src/core/net/netif.hpp @@ -213,11 +213,16 @@ public: * * @param[in] aAddress A reference to the unicast address. * - * @retval OT_ERROR_NONE Successfully removed the unicast address. - * @retval OT_ERROR_NOT_FOUND The unicast address wasn't found to be removed. + */ + void RemoveUnicastAddress(const NetifUnicastAddress &aAddress); + + /** + * This method indicates whether a unicast address is added to the network interface. + * + * @param[in] aAddress A reference to the unicast address. * */ - otError RemoveUnicastAddress(const NetifUnicastAddress &aAddress); + bool HasUnicastAddress(const NetifUnicastAddress &aAddress) const { return mUnicastAddresses.Contains(aAddress); } /** * This method adds an external (to OpenThread) unicast address to the network interface. diff --git a/src/core/thread/address_resolver.cpp b/src/core/thread/address_resolver.cpp index 113e281cc..a3a8e4e0f 100644 --- a/src/core/thread/address_resolver.cpp +++ b/src/core/thread/address_resolver.cpp @@ -742,7 +742,7 @@ void AddressResolver::HandleAddressError(Coap::Message &aMessage, const Ip6::Mes memcmp(Get().GetMeshLocal64().GetIid(), meshLocalIid, sizeof(meshLocalIid))) { // Target EID matches address and Mesh Local EID differs - IgnoreError(Get().RemoveUnicastAddress(*address)); + Get().RemoveUnicastAddress(*address); ExitNow(); } } diff --git a/src/core/thread/mle.cpp b/src/core/thread/mle.cpp index e493c662e..137d98ceb 100644 --- a/src/core/thread/mle.cpp +++ b/src/core/thread/mle.cpp @@ -224,7 +224,7 @@ otError Mle::Disable(void) Stop(false); SuccessOrExit(error = mSocket.Close()); - SuccessOrExit(error = Get().RemoveUnicastAddress(mLinkLocal64)); + Get().RemoveUnicastAddress(mLinkLocal64); exit: return error; @@ -303,8 +303,8 @@ void Mle::Stop(bool aClearNetworkDatasets) SetStateDetached(); IgnoreError(Get().UnsubscribeMulticast(mRealmLocalAllThreadNodes)); IgnoreError(Get().UnsubscribeMulticast(mLinkLocalAllThreadNodes)); - IgnoreError(Get().RemoveUnicastAddress(mMeshLocal16)); - IgnoreError(Get().RemoveUnicastAddress(mMeshLocal64)); + Get().RemoveUnicastAddress(mMeshLocal16); + Get().RemoveUnicastAddress(mMeshLocal64); SetRole(kRoleDisabled); @@ -747,7 +747,7 @@ void Mle::SetStateDetached(void) if (IsLeader()) { - IgnoreError(Get().RemoveUnicastAddress(mLeaderAloc)); + Get().RemoveUnicastAddress(mLeaderAloc); } SetRole(kRoleDetached); @@ -773,7 +773,7 @@ void Mle::SetStateChild(uint16_t aRloc16) { if (IsLeader()) { - IgnoreError(Get().RemoveUnicastAddress(mLeaderAloc)); + Get().RemoveUnicastAddress(mLeaderAloc); } SetRloc16(aRloc16); @@ -896,7 +896,7 @@ exit: void Mle::UpdateLinkLocalAddress(void) { - IgnoreError(Get().RemoveUnicastAddress(mLinkLocal64)); + Get().RemoveUnicastAddress(mLinkLocal64); mLinkLocal64.GetAddress().SetIid(Get().GetExtAddress()); Get().AddUnicastAddress(mLinkLocal64); @@ -909,11 +909,11 @@ void Mle::SetMeshLocalPrefix(const MeshLocalPrefix &aMeshLocalPrefix) if (Get().IsUp()) { - IgnoreError(Get().RemoveUnicastAddress(mLeaderAloc)); + Get().RemoveUnicastAddress(mLeaderAloc); // We must remove the old addresses before adding the new ones. - IgnoreError(Get().RemoveUnicastAddress(mMeshLocal64)); - IgnoreError(Get().RemoveUnicastAddress(mMeshLocal16)); + Get().RemoveUnicastAddress(mMeshLocal64); + Get().RemoveUnicastAddress(mMeshLocal16); IgnoreError(Get().UnsubscribeMulticast(mLinkLocalAllThreadNodes)); IgnoreError(Get().UnsubscribeMulticast(mRealmLocalAllThreadNodes)); } @@ -972,7 +972,7 @@ void Mle::ApplyMeshLocalPrefix(void) { if (mServiceAlocs[i].GetAddress().GetLocator() != Mac::kShortAddrInvalid) { - IgnoreError(Get().RemoveUnicastAddress(mServiceAlocs[i])); + Get().RemoveUnicastAddress(mServiceAlocs[i]); mServiceAlocs[i].GetAddress().SetPrefix(GetMeshLocalPrefix()); Get().AddUnicastAddress(mServiceAlocs[i]); } @@ -1009,7 +1009,7 @@ void Mle::SetRloc16(uint16_t aRloc16) } } - IgnoreError(Get().RemoveUnicastAddress(mMeshLocal16)); + Get().RemoveUnicastAddress(mMeshLocal16); Get().SetShortAddress(aRloc16); Get().SetSeedId(aRloc16); @@ -1641,7 +1641,7 @@ void Mle::UpdateServiceAlocs(void) if ((serviceAloc != Mac::kShortAddrInvalid) && (!Get().ContainsService(Mle::ServiceIdFromAloc(serviceAloc), rloc))) { - IgnoreError(Get().RemoveUnicastAddress(mServiceAlocs[i])); + Get().RemoveUnicastAddress(mServiceAlocs[i]); mServiceAlocs[i].GetAddress().SetLocator(Mac::kShortAddrInvalid); } } diff --git a/src/core/utils/slaac_address.cpp b/src/core/utils/slaac_address.cpp index a24441ffe..0b13a0dde 100644 --- a/src/core/utils/slaac_address.cpp +++ b/src/core/utils/slaac_address.cpp @@ -186,7 +186,7 @@ void Slaac::Update(UpdateMode aMode) { otLogInfoUtil("SLAAC: Removing address %s", slaacAddr->GetAddress().ToString().AsCString()); - IgnoreError(Get().RemoveUnicastAddress(*slaacAddr)); + Get().RemoveUnicastAddress(*slaacAddr); slaacAddr->mValid = false; } }