From 809e7e641cb56355ce622b4089e3d22b0397d2ad Mon Sep 17 00:00:00 2001 From: Yakun Xu Date: Tue, 7 Jan 2020 00:23:15 +0800 Subject: [PATCH] [tlv] add AppendTo to resolve mutual dependency (#4438) This commit adds AppendTo(Message) to Tlv, so that Message doesn't depend on Tlv any more. This allows a concrete Tlv overriding its serialization. --- src/core/common/message.cpp | 9 ----- src/core/common/message.hpp | 15 +------- src/core/common/tlvs.cpp | 10 +++++ src/core/common/tlvs.hpp | 13 +++++++ src/core/meshcop/announce_begin_client.cpp | 8 ++-- src/core/meshcop/border_agent.cpp | 2 +- src/core/meshcop/commissioner.cpp | 22 +++++------ src/core/meshcop/dataset.cpp | 4 +- src/core/meshcop/dataset_manager.cpp | 30 +++++++-------- src/core/meshcop/dataset_manager_ftd.cpp | 2 +- src/core/meshcop/energy_scan_client.cpp | 10 ++--- src/core/meshcop/joiner.cpp | 14 +++---- src/core/meshcop/joiner_router.cpp | 32 ++++++++-------- src/core/meshcop/leader.cpp | 8 ++-- src/core/meshcop/panid_query_client.cpp | 6 +-- src/core/thread/address_resolver.cpp | 14 +++---- src/core/thread/energy_scan_server.cpp | 2 +- src/core/thread/mle.cpp | 42 ++++++++++----------- src/core/thread/mle_router.cpp | 34 ++++++++--------- src/core/thread/network_data.cpp | 2 +- src/core/thread/network_data_leader_ftd.cpp | 4 +- src/core/thread/network_diagnostic.cpp | 22 +++++------ src/core/thread/panid_query_server.cpp | 4 +- 23 files changed, 155 insertions(+), 154 deletions(-) diff --git a/src/core/common/message.cpp b/src/core/common/message.cpp index 496aef7f1..1990713f5 100644 --- a/src/core/common/message.cpp +++ b/src/core/common/message.cpp @@ -402,15 +402,6 @@ exit: return error; } -otError Message::AppendTlv(const Tlv &aTlv) -{ - uint32_t size = aTlv.GetSize(); - - assert(size <= UINT16_MAX); - - return Append(&aTlv, static_cast(size)); -} - otError Message::Prepend(const void *aBuf, uint16_t aLength) { otError error = OT_ERROR_NONE; diff --git a/src/core/common/message.hpp b/src/core/common/message.hpp index 0f5346ba9..837f29c81 100644 --- a/src/core/common/message.hpp +++ b/src/core/common/message.hpp @@ -44,8 +44,8 @@ #include #include "common/code_utils.hpp" +#include "common/encoding.hpp" #include "common/locator.hpp" -#include "common/tlvs.hpp" #include "mac/mac_types.hpp" #include "thread/link_quality.hpp" @@ -401,19 +401,6 @@ public: */ otError Append(const void *aBuf, uint16_t aLength); - /** - * This method appends a TLV to the end of the message. - * - * On success, this method grows the message by the size of the TLV. - * - * @param[in] aTlv A reference to a TLV. - * - * @retval OT_ERROR_NONE Successfully appended the TLV to the message. - * @retval OT_ERROR_NO_BUFS Insufficient available buffers to grow the message. - * - */ - otError AppendTlv(const Tlv &aTlv); - /** * This method reads bytes from the message. * diff --git a/src/core/common/tlvs.cpp b/src/core/common/tlvs.cpp index e136f3da2..3a79f3321 100644 --- a/src/core/common/tlvs.cpp +++ b/src/core/common/tlvs.cpp @@ -34,6 +34,7 @@ #include "tlvs.hpp" #include "common/code_utils.hpp" +#include "common/debug.hpp" #include "common/message.hpp" namespace ot { @@ -164,4 +165,13 @@ exit: return error; } +otError Tlv::AppendTo(Message &aMessage) const +{ + uint32_t size = GetSize(); + + assert(size <= UINT16_MAX); + + return aMessage.Append(this, static_cast(size)); +} + } // namespace ot diff --git a/src/core/common/tlvs.hpp b/src/core/common/tlvs.hpp index dc2ba64fa..1bfa330f1 100644 --- a/src/core/common/tlvs.hpp +++ b/src/core/common/tlvs.hpp @@ -212,6 +212,19 @@ public: */ static otError GetValueOffset(const Message &aMessage, uint8_t aType, uint16_t &aOffset, uint16_t &aLength); + /** + * This method appends a TLV to the end of the message. + * + * On success, this method grows the message by the size of the TLV. + * + * @param[in] aMessage A reference to the message to append to. + * + * @retval OT_ERROR_NONE Successfully appended the TLV to the message. + * @retval OT_ERROR_NO_BUFS Insufficient available buffers to grow the message. + * + */ + otError AppendTo(Message &aMessage) const; + protected: enum { diff --git a/src/core/meshcop/announce_begin_client.cpp b/src/core/meshcop/announce_begin_client.cpp index 8a3ea4fdd..e12676cee 100644 --- a/src/core/meshcop/announce_begin_client.cpp +++ b/src/core/meshcop/announce_begin_client.cpp @@ -77,19 +77,19 @@ otError AnnounceBeginClient::SendRequest(uint32_t aChannelMask, sessionId.Init(); sessionId.SetCommissionerSessionId(Get().GetSessionId()); - SuccessOrExit(error = message->AppendTlv(sessionId)); + SuccessOrExit(error = sessionId.AppendTo(*message)); channelMask.Init(); channelMask.SetChannelMask(aChannelMask); - SuccessOrExit(error = message->AppendTlv(channelMask)); + SuccessOrExit(error = channelMask.AppendTo(*message)); count.Init(); count.SetCount(aCount); - SuccessOrExit(error = message->AppendTlv(count)); + SuccessOrExit(error = count.AppendTo(*message)); period.Init(); period.SetPeriod(aPeriod); - SuccessOrExit(error = message->AppendTlv(period)); + SuccessOrExit(error = period.AppendTo(*message)); messageInfo.SetSockAddr(Get().GetMeshLocal16()); messageInfo.SetPeerAddr(aAddress); diff --git a/src/core/meshcop/border_agent.cpp b/src/core/meshcop/border_agent.cpp index 8b6a60e45..f97ed5c3f 100644 --- a/src/core/meshcop/border_agent.cpp +++ b/src/core/meshcop/border_agent.cpp @@ -444,7 +444,7 @@ bool BorderAgent::HandleUdpReceive(const Message &aMessage, const Ip6::MessageIn tlv.Init(); tlv.SetAddress(aMessageInfo.GetPeerAddr()); - SuccessOrExit(error = message->AppendTlv(tlv)); + SuccessOrExit(error = tlv.AppendTo(*message)); } SuccessOrExit(error = Get().SendMessage(*message, Get().GetPeerAddress())); diff --git a/src/core/meshcop/commissioner.cpp b/src/core/meshcop/commissioner.cpp index de8811b50..27185bdb3 100644 --- a/src/core/meshcop/commissioner.cpp +++ b/src/core/meshcop/commissioner.cpp @@ -571,7 +571,7 @@ otError Commissioner::SendMgmtCommissionerSetRequest(const otCommissioningDatase MeshCoP::BorderAgentLocatorTlv locator; locator.Init(); locator.SetBorderAgentLocator(aDataset.mLocator); - SuccessOrExit(error = message->AppendTlv(locator)); + SuccessOrExit(error = locator.AppendTo(*message)); } if (aDataset.mIsSessionIdSet) @@ -579,7 +579,7 @@ otError Commissioner::SendMgmtCommissionerSetRequest(const otCommissioningDatase MeshCoP::CommissionerSessionIdTlv sessionId; sessionId.Init(); sessionId.SetCommissionerSessionId(aDataset.mSessionId); - SuccessOrExit(error = message->AppendTlv(sessionId)); + SuccessOrExit(error = sessionId.AppendTo(*message)); } if (aDataset.mIsSteeringDataSet) @@ -596,7 +596,7 @@ otError Commissioner::SendMgmtCommissionerSetRequest(const otCommissioningDatase MeshCoP::JoinerUdpPortTlv joinerUdpPort; joinerUdpPort.Init(); joinerUdpPort.SetUdpPort(aDataset.mJoinerUdpPort); - SuccessOrExit(error = message->AppendTlv(joinerUdpPort)); + SuccessOrExit(error = joinerUdpPort.AppendTo(*message)); } if (aLength > 0) @@ -667,7 +667,7 @@ otError Commissioner::SendPetition(void) commissionerId.Init(); commissionerId.SetCommissionerId("OpenThread Commissioner"); - SuccessOrExit(error = message->AppendTlv(commissionerId)); + SuccessOrExit(error = commissionerId.AppendTo(*message)); SuccessOrExit(error = Get().GetLeaderAloc(messageInfo.GetPeerAddr())); messageInfo.SetPeerPort(kCoapUdpPort); @@ -759,11 +759,11 @@ otError Commissioner::SendKeepAlive(void) state.Init(); state.SetState(mState == OT_COMMISSIONER_STATE_ACTIVE ? StateTlv::kAccept : StateTlv::kReject); - SuccessOrExit(error = message->AppendTlv(state)); + SuccessOrExit(error = state.AppendTo(*message)); sessionId.Init(); sessionId.SetCommissionerSessionId(mSessionId); - SuccessOrExit(error = message->AppendTlv(sessionId)); + SuccessOrExit(error = sessionId.AppendTo(*message)); messageInfo.SetSockAddr(Get().GetMeshLocal16()); SuccessOrExit(error = Get().GetLeaderAloc(messageInfo.GetPeerAddr())); @@ -994,7 +994,7 @@ void Commissioner::SendJoinFinalizeResponse(const Coap::Message &aRequest, State stateTlv.Init(); stateTlv.SetState(aState); - SuccessOrExit(error = message->AppendTlv(stateTlv)); + SuccessOrExit(error = stateTlv.AppendTo(*message)); joinerMessageInfo.SetPeerAddr(Get().GetMeshLocal64()); joinerMessageInfo.GetPeerAddr().SetIid(mJoinerIid); @@ -1056,22 +1056,22 @@ otError Commissioner::SendRelayTransmit(Message &aMessage, const Ip6::MessageInf udpPort.Init(); udpPort.SetUdpPort(mJoinerPort); - SuccessOrExit(error = message->AppendTlv(udpPort)); + SuccessOrExit(error = udpPort.AppendTo(*message)); iid.Init(); iid.SetIid(mJoinerIid); - SuccessOrExit(error = message->AppendTlv(iid)); + SuccessOrExit(error = iid.AppendTo(*message)); rloc.Init(); rloc.SetJoinerRouterLocator(mJoinerRloc); - SuccessOrExit(error = message->AppendTlv(rloc)); + SuccessOrExit(error = rloc.AppendTo(*message)); if (aMessage.GetSubType() == Message::kSubTypeJoinerFinalizeResponse) { JoinerRouterKekTlv kek; kek.Init(); kek.SetKek(Get().GetKek()); - SuccessOrExit(error = message->AppendTlv(kek)); + SuccessOrExit(error = kek.AppendTo(*message)); } tlv.SetType(Tlv::kJoinerDtlsEncapsulation); diff --git a/src/core/meshcop/dataset.cpp b/src/core/meshcop/dataset.cpp index e1ce130e9..b3adad1e4 100644 --- a/src/core/meshcop/dataset.cpp +++ b/src/core/meshcop/dataset.cpp @@ -489,11 +489,11 @@ otError Dataset::AppendMleDatasetTlv(Message &aMessage) const delayTimer.SetDelayTimer(0); } - SuccessOrExit(error = aMessage.AppendTlv(delayTimer)); + SuccessOrExit(error = delayTimer.AppendTo(aMessage)); } else { - SuccessOrExit(error = aMessage.AppendTlv(*cur)); + SuccessOrExit(error = cur->AppendTo(aMessage)); } cur = cur->GetNext(); diff --git a/src/core/meshcop/dataset_manager.cpp b/src/core/meshcop/dataset_manager.cpp index 115ffcc76..6053ddac7 100644 --- a/src/core/meshcop/dataset_manager.cpp +++ b/src/core/meshcop/dataset_manager.cpp @@ -364,7 +364,7 @@ void DatasetManager::SendGetResponse(const Coap::Message & aRequest, if (cur->GetType() != Tlv::kNetworkMasterKey || (Get().GetSecurityPolicyFlags() & OT_SECURITY_POLICY_OBTAIN_MASTER_KEY)) { - SuccessOrExit(error = message->AppendTlv(*cur)); + SuccessOrExit(error = cur->AppendTo(*message)); } cur = cur->GetNext(); @@ -384,7 +384,7 @@ void DatasetManager::SendGetResponse(const Coap::Message & aRequest, if ((tlv = dataset.Get(static_cast(aTlvs[index]))) != NULL) { - SuccessOrExit(error = message->AppendTlv(*tlv)); + SuccessOrExit(error = tlv->AppendTo(*message)); } } } @@ -442,7 +442,7 @@ otError DatasetManager::SendSetRequest(const otOperationalDataset &aDataset, con CommissionerSessionIdTlv sessionId; sessionId.Init(); sessionId.SetCommissionerSessionId(Get().GetSessionId()); - SuccessOrExit(error = message->AppendTlv(sessionId)); + SuccessOrExit(error = sessionId.AppendTo(*message)); } } @@ -454,7 +454,7 @@ otError DatasetManager::SendSetRequest(const otOperationalDataset &aDataset, con timestamp.Init(); static_cast(×tamp)->SetSeconds(aDataset.mActiveTimestamp); static_cast(×tamp)->SetTicks(0); - SuccessOrExit(error = message->AppendTlv(timestamp)); + SuccessOrExit(error = timestamp.AppendTo(*message)); } if (aDataset.mComponents.mIsPendingTimestampPresent) @@ -463,7 +463,7 @@ otError DatasetManager::SendSetRequest(const otOperationalDataset &aDataset, con timestamp.Init(); static_cast(×tamp)->SetSeconds(aDataset.mPendingTimestamp); static_cast(×tamp)->SetTicks(0); - SuccessOrExit(error = message->AppendTlv(timestamp)); + SuccessOrExit(error = timestamp.AppendTo(*message)); } if (aDataset.mComponents.mIsMasterKeyPresent) @@ -471,7 +471,7 @@ otError DatasetManager::SendSetRequest(const otOperationalDataset &aDataset, con NetworkMasterKeyTlv masterkey; masterkey.Init(); masterkey.SetNetworkMasterKey(static_cast(aDataset.mMasterKey)); - SuccessOrExit(error = message->AppendTlv(masterkey)); + SuccessOrExit(error = masterkey.AppendTo(*message)); } if (aDataset.mComponents.mIsNetworkNamePresent) @@ -479,7 +479,7 @@ otError DatasetManager::SendSetRequest(const otOperationalDataset &aDataset, con NetworkNameTlv networkname; networkname.Init(); networkname.SetNetworkName(static_cast(aDataset.mNetworkName).GetAsData()); - SuccessOrExit(error = message->AppendTlv(networkname)); + SuccessOrExit(error = networkname.AppendTo(*message)); } if (aDataset.mComponents.mIsExtendedPanIdPresent) @@ -487,7 +487,7 @@ otError DatasetManager::SendSetRequest(const otOperationalDataset &aDataset, con ExtendedPanIdTlv extpanid; extpanid.Init(); extpanid.SetExtendedPanId(static_cast(aDataset.mExtendedPanId)); - SuccessOrExit(error = message->AppendTlv(extpanid)); + SuccessOrExit(error = extpanid.AppendTo(*message)); } if (aDataset.mComponents.mIsMeshLocalPrefixPresent) @@ -495,7 +495,7 @@ otError DatasetManager::SendSetRequest(const otOperationalDataset &aDataset, con MeshLocalPrefixTlv localprefix; localprefix.Init(); localprefix.SetMeshLocalPrefix(aDataset.mMeshLocalPrefix); - SuccessOrExit(error = message->AppendTlv(localprefix)); + SuccessOrExit(error = localprefix.AppendTo(*message)); } if (aDataset.mComponents.mIsDelayPresent) @@ -503,7 +503,7 @@ otError DatasetManager::SendSetRequest(const otOperationalDataset &aDataset, con DelayTimerTlv delaytimer; delaytimer.Init(); delaytimer.SetDelayTimer(aDataset.mDelay); - SuccessOrExit(error = message->AppendTlv(delaytimer)); + SuccessOrExit(error = delaytimer.AppendTo(*message)); } if (aDataset.mComponents.mIsPanIdPresent) @@ -511,7 +511,7 @@ otError DatasetManager::SendSetRequest(const otOperationalDataset &aDataset, con PanIdTlv panid; panid.Init(); panid.SetPanId(aDataset.mPanId); - SuccessOrExit(error = message->AppendTlv(panid)); + SuccessOrExit(error = panid.AppendTo(*message)); } if (aDataset.mComponents.mIsChannelPresent) @@ -519,7 +519,7 @@ otError DatasetManager::SendSetRequest(const otOperationalDataset &aDataset, con ChannelTlv channel; channel.Init(); channel.SetChannel(aDataset.mChannel); - SuccessOrExit(error = message->AppendTlv(channel)); + SuccessOrExit(error = channel.AppendTo(*message)); } if (aDataset.mComponents.mIsChannelMaskPresent) @@ -527,7 +527,7 @@ otError DatasetManager::SendSetRequest(const otOperationalDataset &aDataset, con ChannelMaskTlv channelMask; channelMask.Init(); channelMask.SetChannelMask(aDataset.mChannelMask); - SuccessOrExit(error = message->AppendTlv(channelMask)); + SuccessOrExit(error = channelMask.AppendTo(*message)); } if (aDataset.mComponents.mIsPskcPresent) @@ -535,7 +535,7 @@ otError DatasetManager::SendSetRequest(const otOperationalDataset &aDataset, con PskcTlv pskc; pskc.Init(); pskc.SetPskc(static_cast(aDataset.mPskc)); - SuccessOrExit(error = message->AppendTlv(pskc)); + SuccessOrExit(error = pskc.AppendTo(*message)); } if (aDataset.mComponents.mIsSecurityPolicyPresent) @@ -544,7 +544,7 @@ otError DatasetManager::SendSetRequest(const otOperationalDataset &aDataset, con securityPolicy.Init(); securityPolicy.SetRotationTime(aDataset.mSecurityPolicy.mRotationTime); securityPolicy.SetFlags(aDataset.mSecurityPolicy.mFlags); - SuccessOrExit(error = message->AppendTlv(securityPolicy)); + SuccessOrExit(error = securityPolicy.AppendTo(*message)); } if (aLength > 0) diff --git a/src/core/meshcop/dataset_manager_ftd.cpp b/src/core/meshcop/dataset_manager_ftd.cpp index 93dca6f57..0b72546b0 100644 --- a/src/core/meshcop/dataset_manager_ftd.cpp +++ b/src/core/meshcop/dataset_manager_ftd.cpp @@ -297,7 +297,7 @@ void DatasetManager::SendSetResponse(const Coap::Message & aRequest, state.Init(); state.SetState(aState); - SuccessOrExit(error = message->AppendTlv(state)); + SuccessOrExit(error = state.AppendTo(*message)); SuccessOrExit(error = Get().SendMessage(*message, aMessageInfo)); diff --git a/src/core/meshcop/energy_scan_client.cpp b/src/core/meshcop/energy_scan_client.cpp index 0d3bf6cf0..d4471e24d 100644 --- a/src/core/meshcop/energy_scan_client.cpp +++ b/src/core/meshcop/energy_scan_client.cpp @@ -85,23 +85,23 @@ otError EnergyScanClient::SendQuery(uint32_t aChannelM sessionId.Init(); sessionId.SetCommissionerSessionId(Get().GetSessionId()); - SuccessOrExit(error = message->AppendTlv(sessionId)); + SuccessOrExit(error = sessionId.AppendTo(*message)); channelMask.Init(); channelMask.SetChannelMask(aChannelMask); - SuccessOrExit(error = message->AppendTlv(channelMask)); + SuccessOrExit(error = channelMask.AppendTo(*message)); count.Init(); count.SetCount(aCount); - SuccessOrExit(error = message->AppendTlv(count)); + SuccessOrExit(error = count.AppendTo(*message)); period.Init(); period.SetPeriod(aPeriod); - SuccessOrExit(error = message->AppendTlv(period)); + SuccessOrExit(error = period.AppendTo(*message)); scanDuration.Init(); scanDuration.SetScanDuration(aScanDuration); - SuccessOrExit(error = message->AppendTlv(scanDuration)); + SuccessOrExit(error = scanDuration.AppendTo(*message)); messageInfo.SetSockAddr(Get().GetMeshLocal16()); messageInfo.SetPeerAddr(aAddress); diff --git a/src/core/meshcop/joiner.cpp b/src/core/meshcop/joiner.cpp index 794df5bb2..f94ad7933 100644 --- a/src/core/meshcop/joiner.cpp +++ b/src/core/meshcop/joiner.cpp @@ -402,33 +402,33 @@ otError Joiner::PrepareJoinerFinalizeMessage(const char *aProvisioningUrl, stateTlv.Init(); stateTlv.SetState(MeshCoP::StateTlv::kAccept); - SuccessOrExit(error = mFinalizeMessage->AppendTlv(stateTlv)); + SuccessOrExit(error = stateTlv.AppendTo(*mFinalizeMessage)); vendorNameTlv.Init(); vendorNameTlv.SetVendorName(aVendorName); - SuccessOrExit(error = mFinalizeMessage->AppendTlv(vendorNameTlv)); + SuccessOrExit(error = vendorNameTlv.AppendTo(*mFinalizeMessage)); vendorModelTlv.Init(); vendorModelTlv.SetVendorModel(aVendorModel); - SuccessOrExit(error = mFinalizeMessage->AppendTlv(vendorModelTlv)); + SuccessOrExit(error = vendorModelTlv.AppendTo(*mFinalizeMessage)); vendorSwVersionTlv.Init(); vendorSwVersionTlv.SetVendorSwVersion(aVendorSwVersion); - SuccessOrExit(error = mFinalizeMessage->AppendTlv(vendorSwVersionTlv)); + SuccessOrExit(error = vendorSwVersionTlv.AppendTo(*mFinalizeMessage)); vendorStackVersionTlv.Init(); vendorStackVersionTlv.SetOui(OPENTHREAD_CONFIG_STACK_VENDOR_OUI); vendorStackVersionTlv.SetMajor(OPENTHREAD_CONFIG_STACK_VERSION_MAJOR); vendorStackVersionTlv.SetMinor(OPENTHREAD_CONFIG_STACK_VERSION_MINOR); vendorStackVersionTlv.SetRevision(OPENTHREAD_CONFIG_STACK_VERSION_REV); - SuccessOrExit(error = mFinalizeMessage->AppendTlv(vendorStackVersionTlv)); + SuccessOrExit(error = vendorStackVersionTlv.AppendTo(*mFinalizeMessage)); if (aVendorData != NULL) { VendorDataTlv vendorDataTlv; vendorDataTlv.Init(); vendorDataTlv.SetVendorData(aVendorData); - SuccessOrExit(error = mFinalizeMessage->AppendTlv(vendorDataTlv)); + SuccessOrExit(error = vendorDataTlv.AppendTo(*mFinalizeMessage)); } provisioningUrlTlv.Init(); @@ -436,7 +436,7 @@ otError Joiner::PrepareJoinerFinalizeMessage(const char *aProvisioningUrl, if (provisioningUrlTlv.GetLength() > 0) { - SuccessOrExit(error = mFinalizeMessage->AppendTlv(provisioningUrlTlv)); + SuccessOrExit(error = provisioningUrlTlv.AppendTo(*mFinalizeMessage)); } exit: diff --git a/src/core/meshcop/joiner_router.cpp b/src/core/meshcop/joiner_router.cpp index b2aa9356e..eb9439480 100644 --- a/src/core/meshcop/joiner_router.cpp +++ b/src/core/meshcop/joiner_router.cpp @@ -153,15 +153,15 @@ void JoinerRouter::HandleUdpReceive(Message &aMessage, const Ip6::MessageInfo &a udpPort.Init(); udpPort.SetUdpPort(aMessageInfo.GetPeerPort()); - SuccessOrExit(error = message->AppendTlv(udpPort)); + SuccessOrExit(error = udpPort.AppendTo(*message)); iid.Init(); iid.SetIid(aMessageInfo.GetPeerAddr().mFields.m8 + 8); - SuccessOrExit(error = message->AppendTlv(iid)); + SuccessOrExit(error = iid.AppendTo(*message)); rloc.Init(); rloc.SetJoinerRouterLocator(Get().GetRloc16()); - SuccessOrExit(error = message->AppendTlv(rloc)); + SuccessOrExit(error = rloc.AppendTo(*message)); tlv.SetType(Tlv::kJoinerDtlsEncapsulation); tlv.SetLength(aMessage.GetLength() - aMessage.GetOffset()); @@ -270,69 +270,69 @@ otError JoinerRouter::DelaySendingJoinerEntrust(const Ip6::MessageInfo &aMessage masterKey.Init(); masterKey.SetNetworkMasterKey(Get().GetMasterKey()); - SuccessOrExit(error = message->AppendTlv(masterKey)); + SuccessOrExit(error = masterKey.AppendTo(*message)); meshLocalPrefix.Init(); meshLocalPrefix.SetMeshLocalPrefix(Get().GetMeshLocalPrefix()); - SuccessOrExit(error = message->AppendTlv(meshLocalPrefix)); + SuccessOrExit(error = meshLocalPrefix.AppendTo(*message)); extendedPanId.Init(); extendedPanId.SetExtendedPanId(Get().GetExtendedPanId()); - SuccessOrExit(error = message->AppendTlv(extendedPanId)); + SuccessOrExit(error = extendedPanId.AppendTo(*message)); networkName.Init(); networkName.SetNetworkName(Get().GetNetworkName().GetAsData()); - SuccessOrExit(error = message->AppendTlv(networkName)); + SuccessOrExit(error = networkName.AppendTo(*message)); Get().Read(dataset); if ((tlv = dataset.Get(Tlv::kActiveTimestamp)) != NULL) { - SuccessOrExit(error = message->AppendTlv(*tlv)); + SuccessOrExit(error = tlv->AppendTo(*message)); } else { ActiveTimestampTlv activeTimestamp; activeTimestamp.Init(); - SuccessOrExit(error = message->AppendTlv(activeTimestamp)); + SuccessOrExit(error = activeTimestamp.AppendTo(*message)); } if ((tlv = dataset.Get(Tlv::kChannelMask)) != NULL) { - SuccessOrExit(error = message->AppendTlv(*tlv)); + SuccessOrExit(error = tlv->AppendTo(*message)); } else { ChannelMaskBaseTlv channelMask; channelMask.Init(); - SuccessOrExit(error = message->AppendTlv(channelMask)); + SuccessOrExit(error = channelMask.AppendTo(*message)); } if ((tlv = dataset.Get(Tlv::kPskc)) != NULL) { - SuccessOrExit(error = message->AppendTlv(*tlv)); + SuccessOrExit(error = tlv->AppendTo(*message)); } else { PskcTlv pskc; pskc.Init(); - SuccessOrExit(error = message->AppendTlv(pskc)); + SuccessOrExit(error = pskc.AppendTo(*message)); } if ((tlv = dataset.Get(Tlv::kSecurityPolicy)) != NULL) { - SuccessOrExit(error = message->AppendTlv(*tlv)); + SuccessOrExit(error = tlv->AppendTo(*message)); } else { SecurityPolicyTlv securityPolicy; securityPolicy.Init(); - SuccessOrExit(error = message->AppendTlv(securityPolicy)); + SuccessOrExit(error = securityPolicy.AppendTo(*message)); } networkKeySequence.Init(); networkKeySequence.SetNetworkKeySequence(Get().GetCurrentKeySequence()); - SuccessOrExit(error = message->AppendTlv(networkKeySequence)); + SuccessOrExit(error = networkKeySequence.AppendTo(*message)); messageInfo = aMessageInfo; messageInfo.SetPeerPort(kCoapUdpPort); diff --git a/src/core/meshcop/leader.cpp b/src/core/meshcop/leader.cpp index 9bfe81006..29996ad58 100644 --- a/src/core/meshcop/leader.cpp +++ b/src/core/meshcop/leader.cpp @@ -135,18 +135,18 @@ otError Leader::SendPetitionResponse(const Coap::Message & aRequest, state.Init(); state.SetState(aState); - SuccessOrExit(error = message->AppendTlv(state)); + SuccessOrExit(error = state.AppendTo(*message)); if (mTimer.IsRunning()) { - SuccessOrExit(error = message->AppendTlv(mCommissionerId)); + SuccessOrExit(error = mCommissionerId.AppendTo(*message)); } if (aState == StateTlv::kAccept) { sessionId.Init(); sessionId.SetCommissionerSessionId(mSessionId); - SuccessOrExit(error = message->AppendTlv(sessionId)); + SuccessOrExit(error = sessionId.AppendTo(*message)); } SuccessOrExit(error = Get().SendMessage(*message, aMessageInfo)); @@ -231,7 +231,7 @@ otError Leader::SendKeepAliveResponse(const Coap::Message & aRequest, state.Init(); state.SetState(aState); - SuccessOrExit(error = message->AppendTlv(state)); + SuccessOrExit(error = state.AppendTo(*message)); SuccessOrExit(error = Get().SendMessage(*message, aMessageInfo)); diff --git a/src/core/meshcop/panid_query_client.cpp b/src/core/meshcop/panid_query_client.cpp index 40c51cf00..da76a4257 100644 --- a/src/core/meshcop/panid_query_client.cpp +++ b/src/core/meshcop/panid_query_client.cpp @@ -80,15 +80,15 @@ otError PanIdQueryClient::SendQuery(uint16_t aPanId, sessionId.Init(); sessionId.SetCommissionerSessionId(Get().GetSessionId()); - SuccessOrExit(error = message->AppendTlv(sessionId)); + SuccessOrExit(error = sessionId.AppendTo(*message)); channelMask.Init(); channelMask.SetChannelMask(aChannelMask); - SuccessOrExit(error = message->AppendTlv(channelMask)); + SuccessOrExit(error = channelMask.AppendTo(*message)); panId.Init(); panId.SetPanId(aPanId); - SuccessOrExit(error = message->AppendTlv(panId)); + SuccessOrExit(error = panId.AppendTo(*message)); messageInfo.SetSockAddr(Get().GetMeshLocal16()); messageInfo.SetPeerAddr(aAddress); diff --git a/src/core/thread/address_resolver.cpp b/src/core/thread/address_resolver.cpp index 90f7e36df..9c5486084 100644 --- a/src/core/thread/address_resolver.cpp +++ b/src/core/thread/address_resolver.cpp @@ -384,7 +384,7 @@ otError AddressResolver::SendAddressQuery(const Ip6::Address &aEid) targetTlv.Init(); targetTlv.SetTarget(aEid); - SuccessOrExit(error = message->AppendTlv(targetTlv)); + SuccessOrExit(error = targetTlv.AppendTo(*message)); messageInfo.GetPeerAddr().mFields.m16[0] = HostSwap16(0xff03); messageInfo.GetPeerAddr().mFields.m16[7] = HostSwap16(0x0002); @@ -520,8 +520,8 @@ otError AddressResolver::SendAddressError(const ThreadTargetTlv & aTarget, SuccessOrExit(error = message->AppendUriPathOptions(OT_URI_PATH_ADDRESS_ERROR)); SuccessOrExit(error = message->SetPayloadMarker()); - SuccessOrExit(error = message->AppendTlv(aTarget)); - SuccessOrExit(error = message->AppendTlv(aEid)); + SuccessOrExit(error = aTarget.AppendTo(*message)); + SuccessOrExit(error = aEid.AppendTo(*message)); if (aDestination == NULL) { @@ -704,16 +704,16 @@ void AddressResolver::SendAddressQueryResponse(const ThreadTargetTlv & SuccessOrExit(error = message->AppendUriPathOptions(OT_URI_PATH_ADDRESS_NOTIFY)); SuccessOrExit(error = message->SetPayloadMarker()); - SuccessOrExit(error = message->AppendTlv(aTargetTlv)); - SuccessOrExit(error = message->AppendTlv(aMlEidTlv)); + SuccessOrExit(error = aTargetTlv.AppendTo(*message)); + SuccessOrExit(error = aMlEidTlv.AppendTo(*message)); rloc16Tlv.Init(); rloc16Tlv.SetRloc16(Get().GetRloc16()); - SuccessOrExit(error = message->AppendTlv(rloc16Tlv)); + SuccessOrExit(error = rloc16Tlv.AppendTo(*message)); if (aLastTransactionTimeTlv != NULL) { - SuccessOrExit(error = message->AppendTlv(*aLastTransactionTimeTlv)); + SuccessOrExit(error = aLastTransactionTimeTlv->AppendTo(*message)); } messageInfo.SetPeerAddr(aDestination); diff --git a/src/core/thread/energy_scan_server.cpp b/src/core/thread/energy_scan_server.cpp index 60bfa98b3..62455b4cf 100644 --- a/src/core/thread/energy_scan_server.cpp +++ b/src/core/thread/energy_scan_server.cpp @@ -187,7 +187,7 @@ otError EnergyScanServer::SendReport(void) channelMask.Init(); channelMask.SetChannelMask(mChannelMask); - SuccessOrExit(error = message->AppendTlv(channelMask)); + SuccessOrExit(error = channelMask.AppendTo(*message)); energyList.Init(); energyList.SetLength(mScanResultsLength); diff --git a/src/core/thread/mle.cpp b/src/core/thread/mle.cpp index df9cf6719..2271973d6 100644 --- a/src/core/thread/mle.cpp +++ b/src/core/thread/mle.cpp @@ -556,7 +556,7 @@ otError Mle::Discover(const Mac::ChannelMask &aScanChannels, discoveryRequest.Init(); discoveryRequest.SetVersion(kThreadVersion); discoveryRequest.SetJoiner(aJoiner); - SuccessOrExit(error = message->AppendTlv(discoveryRequest)); + SuccessOrExit(error = discoveryRequest.AppendTo(*message)); tlv.SetLength(static_cast(message->GetLength() - startOffset)); message->Write(startOffset - sizeof(tlv), sizeof(tlv), &tlv); @@ -1125,7 +1125,7 @@ otError Mle::AppendSourceAddress(Message &aMessage) tlv.Init(); tlv.SetRloc16(GetRloc16()); - return aMessage.AppendTlv(tlv); + return tlv.AppendTo(aMessage); } otError Mle::AppendStatus(Message &aMessage, StatusTlv::Status aStatus) @@ -1135,7 +1135,7 @@ otError Mle::AppendStatus(Message &aMessage, StatusTlv::Status aStatus) tlv.Init(); tlv.SetStatus(aStatus); - return aMessage.AppendTlv(tlv); + return tlv.AppendTo(aMessage); } otError Mle::AppendMode(Message &aMessage, DeviceMode aMode) @@ -1145,7 +1145,7 @@ otError Mle::AppendMode(Message &aMessage, DeviceMode aMode) tlv.Init(); tlv.SetMode(aMode); - return aMessage.AppendTlv(tlv); + return tlv.AppendTo(aMessage); } otError Mle::AppendTimeout(Message &aMessage, uint32_t aTimeout) @@ -1155,7 +1155,7 @@ otError Mle::AppendTimeout(Message &aMessage, uint32_t aTimeout) tlv.Init(); tlv.SetTimeout(aTimeout); - return aMessage.AppendTlv(tlv); + return tlv.AppendTo(aMessage); } otError Mle::AppendChallenge(Message &aMessage, const uint8_t *aChallenge, uint8_t aChallengeLength) @@ -1194,7 +1194,7 @@ otError Mle::AppendLinkFrameCounter(Message &aMessage) tlv.Init(); tlv.SetFrameCounter(Get().GetMacFrameCounter()); - return aMessage.AppendTlv(tlv); + return tlv.AppendTo(aMessage); } otError Mle::AppendMleFrameCounter(Message &aMessage) @@ -1204,7 +1204,7 @@ otError Mle::AppendMleFrameCounter(Message &aMessage) tlv.Init(); tlv.SetFrameCounter(Get().GetMleFrameCounter()); - return aMessage.AppendTlv(tlv); + return tlv.AppendTo(aMessage); } otError Mle::AppendAddress16(Message &aMessage, uint16_t aRloc16) @@ -1214,7 +1214,7 @@ otError Mle::AppendAddress16(Message &aMessage, uint16_t aRloc16) tlv.Init(); tlv.SetRloc16(aRloc16); - return aMessage.AppendTlv(tlv); + return tlv.AppendTo(aMessage); } otError Mle::AppendLeaderData(Message &aMessage) @@ -1223,7 +1223,7 @@ otError Mle::AppendLeaderData(Message &aMessage) mLeaderData.SetDataVersion(Get().GetVersion()); mLeaderData.SetStableDataVersion(Get().GetStableVersion()); - return aMessage.AppendTlv(mLeaderData); + return mLeaderData.AppendTo(aMessage); } void Mle::FillNetworkDataTlv(NetworkDataTlv &aTlv, bool aStableOnly) @@ -1245,7 +1245,7 @@ otError Mle::AppendNetworkData(Message &aMessage, bool aStableOnly) tlv.Init(); FillNetworkDataTlv(tlv, aStableOnly); - error = aMessage.AppendTlv(tlv); + error = tlv.AppendTo(aMessage); exit: return error; @@ -1273,7 +1273,7 @@ otError Mle::AppendScanMask(Message &aMessage, uint8_t aScanMask) tlv.Init(); tlv.SetMask(aScanMask); - return aMessage.AppendTlv(tlv); + return tlv.AppendTo(aMessage); } otError Mle::AppendLinkMargin(Message &aMessage, uint8_t aLinkMargin) @@ -1283,7 +1283,7 @@ otError Mle::AppendLinkMargin(Message &aMessage, uint8_t aLinkMargin) tlv.Init(); tlv.SetLinkMargin(aLinkMargin); - return aMessage.AppendTlv(tlv); + return tlv.AppendTo(aMessage); } otError Mle::AppendVersion(Message &aMessage) @@ -1293,7 +1293,7 @@ otError Mle::AppendVersion(Message &aMessage) tlv.Init(); tlv.SetVersion(kThreadVersion); - return aMessage.AppendTlv(tlv); + return tlv.AppendTo(aMessage); } bool Mle::HasUnregisteredAddress(void) @@ -1416,7 +1416,7 @@ otError Mle::AppendTimeRequest(Message &aMessage) tlv.Init(); - return aMessage.AppendTlv(tlv); + return tlv.AppendTo(aMessage); } otError Mle::AppendTimeParameter(Message &aMessage) @@ -1427,7 +1427,7 @@ otError Mle::AppendTimeParameter(Message &aMessage) tlv.SetTimeSyncPeriod(Get().GetTimeSyncPeriod()); tlv.SetXtalThreshold(Get().GetXtalThreshold()); - return aMessage.AppendTlv(tlv); + return tlv.AppendTo(aMessage); } otError Mle::AppendXtalAccuracy(Message &aMessage) @@ -1437,7 +1437,7 @@ otError Mle::AppendXtalAccuracy(Message &aMessage) tlv.Init(); tlv.SetXtalAccuracy(otPlatTimeGetXtalAccuracy()); - return aMessage.AppendTlv(tlv); + return tlv.AppendTo(aMessage); } #endif // OPENTHREAD_CONFIG_TIME_SYNC_ENABLE @@ -1452,7 +1452,7 @@ otError Mle::AppendActiveTimestamp(Message &aMessage) timestampTlv.Init(); *static_cast(×tampTlv) = *timestamp; - error = aMessage.AppendTlv(timestampTlv); + error = timestampTlv.AppendTo(aMessage); exit: return error; @@ -1469,7 +1469,7 @@ otError Mle::AppendPendingTimestamp(Message &aMessage) timestampTlv.Init(); *static_cast(×tampTlv) = *timestamp; - error = aMessage.AppendTlv(timestampTlv); + error = timestampTlv.AppendTo(aMessage); exit: return error; @@ -2434,7 +2434,7 @@ otError Mle::SendAnnounce(uint8_t aChannel, bool aOrphanAnnounce, const Ip6::Add channel.Init(); channel.SetChannel(Get().GetPanChannel()); - SuccessOrExit(error = message->AppendTlv(channel)); + SuccessOrExit(error = channel.AppendTo(*message)); if (aOrphanAnnounce) { @@ -2443,7 +2443,7 @@ otError Mle::SendAnnounce(uint8_t aChannel, bool aOrphanAnnounce, const Ip6::Add activeTimestamp.SetTicks(0); activeTimestamp.SetAuthoritative(true); - SuccessOrExit(error = message->AppendTlv(activeTimestamp)); + SuccessOrExit(error = activeTimestamp.AppendTo(*message)); } else { @@ -2452,7 +2452,7 @@ otError Mle::SendAnnounce(uint8_t aChannel, bool aOrphanAnnounce, const Ip6::Add panid.Init(); panid.SetPanId(Get().GetPanId()); - SuccessOrExit(error = message->AppendTlv(panid)); + SuccessOrExit(error = panid.AppendTo(*message)); SuccessOrExit(error = SendMessage(*message, aDestination)); otLogInfoMle("Send Announce on channel %d", aChannel); diff --git a/src/core/thread/mle_router.cpp b/src/core/thread/mle_router.cpp index b99766574..46a59a179 100644 --- a/src/core/thread/mle_router.cpp +++ b/src/core/thread/mle_router.cpp @@ -2786,7 +2786,7 @@ otError MleRouter::SendDiscoveryResponse(const Ip6::Address &aDestination, uint1 commissionerUdpPort.Init(); commissionerUdpPort.SetUdpPort(MeshCoP::kBorderAgentUdpPort); - SuccessOrExit(error = message->AppendTlv(commissionerUdpPort)); + SuccessOrExit(error = commissionerUdpPort.AppendTo(*message)); discoveryResponse.SetNativeCommissioner(true); } @@ -2795,17 +2795,17 @@ otError MleRouter::SendDiscoveryResponse(const Ip6::Address &aDestination, uint1 discoveryResponse.SetNativeCommissioner(false); } - SuccessOrExit(error = message->AppendTlv(discoveryResponse)); + SuccessOrExit(error = discoveryResponse.AppendTo(*message)); // Extended PAN ID TLV extPanId.Init(); extPanId.SetExtendedPanId(Get().GetExtendedPanId()); - SuccessOrExit(error = message->AppendTlv(extPanId)); + SuccessOrExit(error = extPanId.AppendTo(*message)); // Network Name TLV networkName.Init(); networkName.SetNetworkName(Get().GetNetworkName().GetAsData()); - SuccessOrExit(error = message->AppendTlv(networkName)); + SuccessOrExit(error = networkName.AppendTo(*message)); #if OPENTHREAD_CONFIG_MLE_STEERING_DATA_SET_OOB_ENABLE @@ -2813,7 +2813,7 @@ otError MleRouter::SendDiscoveryResponse(const Ip6::Address &aDestination, uint1 // Otherwise use the one from commissioning data. if (!mSteeringData.IsCleared()) { - SuccessOrExit(error = message->AppendTlv(mSteeringData)); + SuccessOrExit(error = mSteeringData.AppendTo(*message)); } else #endif // OPENTHREAD_CONFIG_MLE_STEERING_DATA_SET_OOB_ENABLE @@ -2823,14 +2823,14 @@ otError MleRouter::SendDiscoveryResponse(const Ip6::Address &aDestination, uint1 if (steeringData != NULL) { - SuccessOrExit(error = message->AppendTlv(*steeringData)); + SuccessOrExit(error = steeringData->AppendTo(*message)); } } // Joiner UDP Port TLV joinerUdpPort.Init(); joinerUdpPort.SetUdpPort(Get().GetJoinerUdpPort()); - SuccessOrExit(error = message->AppendTlv(joinerUdpPort)); + SuccessOrExit(error = joinerUdpPort.AppendTo(*message)); tlv.SetLength(static_cast(message->GetLength() - startOffset)); message->Write(startOffset - sizeof(tlv), sizeof(tlv), &tlv); @@ -3839,18 +3839,18 @@ otError MleRouter::SendAddressSolicit(ThreadStatusTlv::Status aStatus) macAddr64Tlv.Init(); macAddr64Tlv.SetMacAddr(Get().GetExtAddress()); - SuccessOrExit(error = message->AppendTlv(macAddr64Tlv)); + SuccessOrExit(error = macAddr64Tlv.AppendTo(*message)); if (IsRouterIdValid(mPreviousRouterId)) { rlocTlv.Init(); rlocTlv.SetRloc16(GetRloc16(mPreviousRouterId)); - SuccessOrExit(error = message->AppendTlv(rlocTlv)); + SuccessOrExit(error = rlocTlv.AppendTo(*message)); } statusTlv.Init(); statusTlv.SetStatus(aStatus); - SuccessOrExit(error = message->AppendTlv(statusTlv)); + SuccessOrExit(error = statusTlv.AppendTo(*message)); #if OPENTHREAD_CONFIG_TIME_SYNC_ENABLE SuccessOrExit(error = AppendXtalAccuracy(*message)); @@ -3891,11 +3891,11 @@ otError MleRouter::SendAddressRelease(void) rlocTlv.Init(); rlocTlv.SetRloc16(GetRloc16(mRouterId)); - SuccessOrExit(error = message->AppendTlv(rlocTlv)); + SuccessOrExit(error = rlocTlv.AppendTo(*message)); macAddr64Tlv.Init(); macAddr64Tlv.SetMacAddr(Get().GetExtAddress()); - SuccessOrExit(error = message->AppendTlv(macAddr64Tlv)); + SuccessOrExit(error = macAddr64Tlv.AppendTo(*message)); messageInfo.SetSockAddr(GetMeshLocal16()); SuccessOrExit(error = GetLeaderAddress(messageInfo.GetPeerAddr())); @@ -4126,13 +4126,13 @@ void MleRouter::SendAddressSolicitResponse(const Coap::Message & aRequest, statusTlv.Init(); statusTlv.SetStatus(aRouter == NULL ? statusTlv.kNoAddressAvailable : statusTlv.kSuccess); - SuccessOrExit(error = message->AppendTlv(statusTlv)); + SuccessOrExit(error = statusTlv.AppendTo(*message)); if (aRouter != NULL) { rlocTlv.Init(); rlocTlv.SetRloc16(aRouter->GetRloc16()); - SuccessOrExit(error = message->AppendTlv(rlocTlv)); + SuccessOrExit(error = rlocTlv.AppendTo(*message)); routerMaskTlv.Init(); routerMaskTlv.SetIdSequence(mRouterTable.GetRouterIdSequence()); @@ -4146,7 +4146,7 @@ void MleRouter::SendAddressSolicitResponse(const Coap::Message & aRequest, } } - SuccessOrExit(error = message->AppendTlv(routerMaskTlv)); + SuccessOrExit(error = routerMaskTlv.AppendTo(*message)); } SuccessOrExit(error = Get().SendMessage(*message, aMessageInfo)); @@ -4333,7 +4333,7 @@ otError MleRouter::AppendConnectivity(Message &aMessage) tlv.Init(); FillConnectivityTlv(tlv); - return aMessage.AppendTlv(tlv); + return tlv.AppendTo(aMessage); } otError MleRouter::AppendChildAddresses(Message &aMessage, Child &aChild) @@ -4443,7 +4443,7 @@ otError MleRouter::AppendRoute(Message &aMessage) tlv.Init(); FillRouteTlv(tlv); - return aMessage.AppendTlv(tlv); + return tlv.AppendTo(aMessage); } otError MleRouter::AppendActiveDataset(Message &aMessage) diff --git a/src/core/thread/network_data.cpp b/src/core/thread/network_data.cpp index 95b2b99f0..279c7ea26 100644 --- a/src/core/thread/network_data.cpp +++ b/src/core/thread/network_data.cpp @@ -1000,7 +1000,7 @@ otError NetworkData::SendServerDataNotification(uint16_t aRloc16) ThreadRloc16Tlv rloc16Tlv; rloc16Tlv.Init(); rloc16Tlv.SetRloc16(aRloc16); - SuccessOrExit(error = message->AppendTlv(rloc16Tlv)); + SuccessOrExit(error = rloc16Tlv.AppendTo(*message)); } Get().GetLeaderAloc(messageInfo.GetPeerAddr()); diff --git a/src/core/thread/network_data_leader_ftd.cpp b/src/core/thread/network_data_leader_ftd.cpp index 775aa8512..77dc727b1 100644 --- a/src/core/thread/network_data_leader_ftd.cpp +++ b/src/core/thread/network_data_leader_ftd.cpp @@ -341,7 +341,7 @@ void Leader::SendCommissioningGetResponse(const Coap::Message & aRequest, { if (cur->GetType() == type) { - SuccessOrExit(error = message->AppendTlv(*cur)); + SuccessOrExit(error = cur->AppendTo(*message)); break; } } @@ -381,7 +381,7 @@ void Leader::SendCommissioningSetResponse(const Coap::Message & aRequest, state.Init(); state.SetState(aState); - SuccessOrExit(error = message->AppendTlv(state)); + SuccessOrExit(error = state.AppendTo(*message)); SuccessOrExit(error = Get().SendMessage(*message, aMessageInfo)); diff --git a/src/core/thread/network_diagnostic.cpp b/src/core/thread/network_diagnostic.cpp index 0be372b2b..034e3481f 100644 --- a/src/core/thread/network_diagnostic.cpp +++ b/src/core/thread/network_diagnostic.cpp @@ -313,7 +313,7 @@ otError NetworkDiagnostic::FillRequestedTlvs(Message & aRequest, ExtMacAddressTlv tlv; tlv.Init(); tlv.SetMacAddr(Get().GetExtAddress()); - SuccessOrExit(error = aResponse.AppendTlv(tlv)); + SuccessOrExit(error = tlv.AppendTo(aResponse)); break; } @@ -322,7 +322,7 @@ otError NetworkDiagnostic::FillRequestedTlvs(Message & aRequest, Address16Tlv tlv; tlv.Init(); tlv.SetRloc16(Get().GetRloc16()); - SuccessOrExit(error = aResponse.AppendTlv(tlv)); + SuccessOrExit(error = tlv.AppendTo(aResponse)); break; } @@ -331,7 +331,7 @@ otError NetworkDiagnostic::FillRequestedTlvs(Message & aRequest, ModeTlv tlv; tlv.Init(); tlv.SetMode(Get().GetDeviceMode()); - SuccessOrExit(error = aResponse.AppendTlv(tlv)); + SuccessOrExit(error = tlv.AppendTo(aResponse)); break; } @@ -342,7 +342,7 @@ otError NetworkDiagnostic::FillRequestedTlvs(Message & aRequest, TimeoutTlv tlv; tlv.Init(); tlv.SetTimeout(Get().GetTimeout()); - SuccessOrExit(error = aResponse.AppendTlv(tlv)); + SuccessOrExit(error = tlv.AppendTo(aResponse)); } break; @@ -353,7 +353,7 @@ otError NetworkDiagnostic::FillRequestedTlvs(Message & aRequest, ConnectivityTlv tlv; tlv.Init(); Get().FillConnectivityTlv(reinterpret_cast(tlv)); - SuccessOrExit(error = aResponse.AppendTlv(tlv)); + SuccessOrExit(error = tlv.AppendTo(aResponse)); break; } @@ -363,7 +363,7 @@ otError NetworkDiagnostic::FillRequestedTlvs(Message & aRequest, RouteTlv tlv; tlv.Init(); Get().FillRouteTlv(reinterpret_cast(tlv)); - SuccessOrExit(error = aResponse.AppendTlv(tlv)); + SuccessOrExit(error = tlv.AppendTo(aResponse)); break; } #endif @@ -372,7 +372,7 @@ otError NetworkDiagnostic::FillRequestedTlvs(Message & aRequest, { LeaderDataTlv tlv(reinterpret_cast(Get().GetLeaderDataTlv())); tlv.Init(); - SuccessOrExit(error = aResponse.AppendTlv(tlv)); + SuccessOrExit(error = tlv.AppendTo(aResponse)); break; } @@ -382,7 +382,7 @@ otError NetworkDiagnostic::FillRequestedTlvs(Message & aRequest, tlv.Init(); Get().FillNetworkDataTlv((reinterpret_cast(tlv)), false); - SuccessOrExit(error = aResponse.AppendTlv(tlv)); + SuccessOrExit(error = tlv.AppendTo(aResponse)); break; } @@ -398,7 +398,7 @@ otError NetworkDiagnostic::FillRequestedTlvs(Message & aRequest, memset(&tlv, 0, sizeof(tlv)); tlv.Init(); FillMacCountersTlv(tlv); - SuccessOrExit(error = aResponse.AppendTlv(tlv)); + SuccessOrExit(error = tlv.AppendTo(aResponse)); break; } @@ -446,7 +446,7 @@ otError NetworkDiagnostic::FillRequestedTlvs(Message & aRequest, } tlv.SetLength(length); - SuccessOrExit(error = aResponse.AppendTlv(tlv)); + SuccessOrExit(error = tlv.AppendTo(aResponse)); break; } @@ -459,7 +459,7 @@ otError NetworkDiagnostic::FillRequestedTlvs(Message & aRequest, MaxChildTimeoutTlv tlv; tlv.Init(); tlv.SetTimeout(maxTimeout); - SuccessOrExit(error = aResponse.AppendTlv(tlv)); + SuccessOrExit(error = tlv.AppendTo(aResponse)); } break; diff --git a/src/core/thread/panid_query_server.cpp b/src/core/thread/panid_query_server.cpp index 0a1b36827..40fe44a45 100644 --- a/src/core/thread/panid_query_server.cpp +++ b/src/core/thread/panid_query_server.cpp @@ -128,11 +128,11 @@ otError PanIdQueryServer::SendConflict(void) channelMask.Init(); channelMask.SetChannelMask(mChannelMask); - SuccessOrExit(error = message->AppendTlv(channelMask)); + SuccessOrExit(error = channelMask.AppendTo(*message)); panId.Init(); panId.SetPanId(mPanId); - SuccessOrExit(error = message->AppendTlv(panId)); + SuccessOrExit(error = panId.AppendTo(*message)); messageInfo.SetSockAddr(Get().GetMeshLocal16()); messageInfo.SetPeerAddr(mCommissioner);