[message] add and use AppendTlv (#3752)
This commit adds a new method `AppendTlv` to `Message` class which
appends a fully formed TLV to the message. This commit also changes
the core modules to use the new method when appending a TLV.
diff --git a/src/core/common/message.cpp b/src/core/common/message.cpp
index ce379f1..118c81d 100644
--- a/src/core/common/message.cpp
+++ b/src/core/common/message.cpp
@@ -458,6 +458,11 @@
return error;
}
+otError Message::AppendTlv(const Tlv &aTlv)
+{
+ return Append(&aTlv, aTlv.GetSize());
+}
+
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 5c640a5..92db61e 100644
--- a/src/core/common/message.hpp
+++ b/src/core/common/message.hpp
@@ -44,6 +44,7 @@
#include "common/code_utils.hpp"
#include "common/locator.hpp"
+#include "common/tlvs.hpp"
#include "mac/mac_frame.hpp"
#include "thread/link_quality.hpp"
@@ -406,6 +407,19 @@
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.
*
* @param[in] aOffset Byte offset within the message to begin reading.
diff --git a/src/core/common/tlvs.hpp b/src/core/common/tlvs.hpp
index ae84d74..a0a42fc 100644
--- a/src/core/common/tlvs.hpp
+++ b/src/core/common/tlvs.hpp
@@ -38,14 +38,18 @@
#include "utils/wrap_string.h"
+#include <openthread/error.h>
+#include <openthread/platform/toolchain.h>
+
#include "common/encoding.hpp"
-#include "common/message.hpp"
namespace ot {
using ot::Encoding::BigEndian::HostSwap16;
using ot::Encoding::BigEndian::HostSwap32;
+class Message;
+
/**
* This class implements TLV generation and parsing.
*
diff --git a/src/core/meshcop/announce_begin_client.cpp b/src/core/meshcop/announce_begin_client.cpp
index 5b4d6b0..8f0eefc 100644
--- a/src/core/meshcop/announce_begin_client.cpp
+++ b/src/core/meshcop/announce_begin_client.cpp
@@ -81,19 +81,19 @@
sessionId.Init();
sessionId.SetCommissionerSessionId(Get<MeshCoP::Commissioner>().GetSessionId());
- SuccessOrExit(error = message->Append(&sessionId, sizeof(sessionId)));
+ SuccessOrExit(error = message->AppendTlv(sessionId));
channelMask.Init();
channelMask.SetChannelMask(aChannelMask);
- SuccessOrExit(error = message->Append(&channelMask, channelMask.GetSize()));
+ SuccessOrExit(error = message->AppendTlv(channelMask));
count.Init();
count.SetCount(aCount);
- SuccessOrExit(error = message->Append(&count, sizeof(count)));
+ SuccessOrExit(error = message->AppendTlv(count));
period.Init();
period.SetPeriod(aPeriod);
- SuccessOrExit(error = message->Append(&period, sizeof(period)));
+ SuccessOrExit(error = message->AppendTlv(period));
messageInfo.SetSockAddr(Get<Mle::MleRouter>().GetMeshLocal16());
messageInfo.SetPeerAddr(aAddress);
diff --git a/src/core/meshcop/border_agent.cpp b/src/core/meshcop/border_agent.cpp
index 9a6de2d..1927eb7 100644
--- a/src/core/meshcop/border_agent.cpp
+++ b/src/core/meshcop/border_agent.cpp
@@ -419,7 +419,7 @@
tlv.SetSourcePort(aMessageInfo.GetPeerPort());
tlv.SetDestinationPort(aMessageInfo.GetSockPort());
tlv.SetUdpLength(udpLength);
- SuccessOrExit(error = message->Append(&tlv, sizeof(tlv)));
+ SuccessOrExit(error = message->AppendTlv(tlv));
offset = message->GetLength();
SuccessOrExit(error = message->SetLength(offset + udpLength));
@@ -431,7 +431,7 @@
tlv.Init();
tlv.SetAddress(aMessageInfo.GetPeerAddr());
- SuccessOrExit(error = message->Append(&tlv, sizeof(tlv)));
+ SuccessOrExit(error = message->AppendTlv(tlv));
}
SuccessOrExit(error = Get<Coap::CoapSecure>().SendMessage(*message, Get<Coap::CoapSecure>().GetPeerAddress()));
diff --git a/src/core/meshcop/commissioner.cpp b/src/core/meshcop/commissioner.cpp
index 9fda4d2..9c507b2 100644
--- a/src/core/meshcop/commissioner.cpp
+++ b/src/core/meshcop/commissioner.cpp
@@ -504,7 +504,7 @@
MeshCoP::BorderAgentLocatorTlv locator;
locator.Init();
locator.SetBorderAgentLocator(aDataset.mLocator);
- SuccessOrExit(error = message->Append(&locator, sizeof(locator)));
+ SuccessOrExit(error = message->AppendTlv(locator));
}
if (aDataset.mIsSessionIdSet)
@@ -512,7 +512,7 @@
MeshCoP::CommissionerSessionIdTlv sessionId;
sessionId.Init();
sessionId.SetCommissionerSessionId(aDataset.mSessionId);
- SuccessOrExit(error = message->Append(&sessionId, sizeof(sessionId)));
+ SuccessOrExit(error = message->AppendTlv(sessionId));
}
if (aDataset.mIsSteeringDataSet)
@@ -529,7 +529,7 @@
MeshCoP::JoinerUdpPortTlv joinerUdpPort;
joinerUdpPort.Init();
joinerUdpPort.SetUdpPort(aDataset.mJoinerUdpPort);
- SuccessOrExit(error = message->Append(&joinerUdpPort, sizeof(joinerUdpPort)));
+ SuccessOrExit(error = message->AppendTlv(joinerUdpPort));
}
if (aLength > 0)
@@ -602,7 +602,7 @@
commissionerId.Init();
commissionerId.SetCommissionerId("OpenThread Commissioner");
- SuccessOrExit(error = message->Append(&commissionerId, sizeof(Tlv) + commissionerId.GetLength()));
+ SuccessOrExit(error = message->AppendTlv(commissionerId));
Get<Mle::MleRouter>().GetLeaderAloc(messageInfo.GetPeerAddr());
messageInfo.SetPeerPort(kCoapUdpPort);
@@ -698,11 +698,11 @@
state.Init();
state.SetState(mState == OT_COMMISSIONER_STATE_ACTIVE ? StateTlv::kAccept : StateTlv::kReject);
- SuccessOrExit(error = message->Append(&state, sizeof(state)));
+ SuccessOrExit(error = message->AppendTlv(state));
sessionId.Init();
sessionId.SetCommissionerSessionId(mSessionId);
- SuccessOrExit(error = message->Append(&sessionId, sizeof(sessionId)));
+ SuccessOrExit(error = message->AppendTlv(sessionId));
messageInfo.SetSockAddr(Get<Mle::MleRouter>().GetMeshLocal16());
Get<Mle::MleRouter>().GetLeaderAloc(messageInfo.GetPeerAddr());
@@ -928,7 +928,7 @@
stateTlv.Init();
stateTlv.SetState(aState);
- SuccessOrExit(error = message->Append(&stateTlv, sizeof(stateTlv)));
+ SuccessOrExit(error = message->AppendTlv(stateTlv));
joinerMessageInfo.SetPeerAddr(Get<Mle::MleRouter>().GetMeshLocal64());
joinerMessageInfo.GetPeerAddr().SetIid(mJoinerIid);
@@ -984,22 +984,22 @@
udpPort.Init();
udpPort.SetUdpPort(mJoinerPort);
- SuccessOrExit(error = message->Append(&udpPort, sizeof(udpPort)));
+ SuccessOrExit(error = message->AppendTlv(udpPort));
iid.Init();
iid.SetIid(mJoinerIid);
- SuccessOrExit(error = message->Append(&iid, sizeof(iid)));
+ SuccessOrExit(error = message->AppendTlv(iid));
rloc.Init();
rloc.SetJoinerRouterLocator(mJoinerRloc);
- SuccessOrExit(error = message->Append(&rloc, sizeof(rloc)));
+ SuccessOrExit(error = message->AppendTlv(rloc));
if (aMessage.GetSubType() == Message::kSubTypeJoinerFinalizeResponse)
{
JoinerRouterKekTlv kek;
kek.Init();
kek.SetKek(Get<KeyManager>().GetKek());
- SuccessOrExit(error = message->Append(&kek, sizeof(kek)));
+ SuccessOrExit(error = message->AppendTlv(kek));
}
tlv.SetType(Tlv::kJoinerDtlsEncapsulation);
diff --git a/src/core/meshcop/dataset.cpp b/src/core/meshcop/dataset.cpp
index d6b0b86..09e3a15 100644
--- a/src/core/meshcop/dataset.cpp
+++ b/src/core/meshcop/dataset.cpp
@@ -494,11 +494,11 @@
delayTimer.SetDelayTimer(0);
}
- SuccessOrExit(error = aMessage.Append(&delayTimer, sizeof(delayTimer)));
+ SuccessOrExit(error = aMessage.AppendTlv(delayTimer));
}
else
{
- SuccessOrExit(error = aMessage.Append(cur, sizeof(Tlv) + cur->GetLength()));
+ SuccessOrExit(error = aMessage.AppendTlv(*cur));
}
cur = cur->GetNext();
diff --git a/src/core/meshcop/dataset_manager.cpp b/src/core/meshcop/dataset_manager.cpp
index 29c836e..1ea9a05 100644
--- a/src/core/meshcop/dataset_manager.cpp
+++ b/src/core/meshcop/dataset_manager.cpp
@@ -366,7 +366,7 @@
if (cur->GetType() != Tlv::kNetworkMasterKey ||
(Get<KeyManager>().GetSecurityPolicyFlags() & OT_SECURITY_POLICY_OBTAIN_MASTER_KEY))
{
- SuccessOrExit(error = message->Append(cur, sizeof(Tlv) + cur->GetLength()));
+ SuccessOrExit(error = message->AppendTlv(*cur));
}
cur = cur->GetNext();
@@ -386,7 +386,7 @@
if ((tlv = dataset.Get(static_cast<Tlv::Type>(aTlvs[index]))) != NULL)
{
- SuccessOrExit(error = message->Append(tlv, sizeof(Tlv) + tlv->GetLength()));
+ SuccessOrExit(error = message->AppendTlv(*tlv));
}
}
}
@@ -446,7 +446,7 @@
CommissionerSessionIdTlv sessionId;
sessionId.Init();
sessionId.SetCommissionerSessionId(Get<Commissioner>().GetSessionId());
- SuccessOrExit(error = message->Append(&sessionId, sizeof(sessionId)));
+ SuccessOrExit(error = message->AppendTlv(sessionId));
}
}
@@ -458,7 +458,7 @@
timestamp.Init();
static_cast<Timestamp *>(×tamp)->SetSeconds(aDataset.mActiveTimestamp);
static_cast<Timestamp *>(×tamp)->SetTicks(0);
- SuccessOrExit(error = message->Append(×tamp, sizeof(timestamp)));
+ SuccessOrExit(error = message->AppendTlv(timestamp));
}
if (aDataset.mComponents.mIsPendingTimestampPresent)
@@ -467,7 +467,7 @@
timestamp.Init();
static_cast<Timestamp *>(×tamp)->SetSeconds(aDataset.mPendingTimestamp);
static_cast<Timestamp *>(×tamp)->SetTicks(0);
- SuccessOrExit(error = message->Append(×tamp, sizeof(timestamp)));
+ SuccessOrExit(error = message->AppendTlv(timestamp));
}
if (aDataset.mComponents.mIsMasterKeyPresent)
@@ -475,7 +475,7 @@
NetworkMasterKeyTlv masterkey;
masterkey.Init();
masterkey.SetNetworkMasterKey(aDataset.mMasterKey);
- SuccessOrExit(error = message->Append(&masterkey, sizeof(masterkey)));
+ SuccessOrExit(error = message->AppendTlv(masterkey));
}
if (aDataset.mComponents.mIsNetworkNamePresent)
@@ -483,7 +483,7 @@
NetworkNameTlv networkname;
networkname.Init();
networkname.SetNetworkName(aDataset.mNetworkName.m8);
- SuccessOrExit(error = message->Append(&networkname, sizeof(Tlv) + networkname.GetLength()));
+ SuccessOrExit(error = message->AppendTlv(networkname));
}
if (aDataset.mComponents.mIsExtendedPanIdPresent)
@@ -491,7 +491,7 @@
ExtendedPanIdTlv extpanid;
extpanid.Init();
extpanid.SetExtendedPanId(aDataset.mExtendedPanId);
- SuccessOrExit(error = message->Append(&extpanid, sizeof(extpanid)));
+ SuccessOrExit(error = message->AppendTlv(extpanid));
}
if (aDataset.mComponents.mIsMeshLocalPrefixPresent)
@@ -499,7 +499,7 @@
MeshLocalPrefixTlv localprefix;
localprefix.Init();
localprefix.SetMeshLocalPrefix(aDataset.mMeshLocalPrefix);
- SuccessOrExit(error = message->Append(&localprefix, sizeof(localprefix)));
+ SuccessOrExit(error = message->AppendTlv(localprefix));
}
if (aDataset.mComponents.mIsDelayPresent)
@@ -507,7 +507,7 @@
DelayTimerTlv delaytimer;
delaytimer.Init();
delaytimer.SetDelayTimer(aDataset.mDelay);
- SuccessOrExit(error = message->Append(&delaytimer, sizeof(delaytimer)));
+ SuccessOrExit(error = message->AppendTlv(delaytimer));
}
if (aDataset.mComponents.mIsPanIdPresent)
@@ -515,7 +515,7 @@
PanIdTlv panid;
panid.Init();
panid.SetPanId(aDataset.mPanId);
- SuccessOrExit(error = message->Append(&panid, sizeof(panid)));
+ SuccessOrExit(error = message->AppendTlv(panid));
}
if (aDataset.mComponents.mIsChannelPresent)
@@ -523,7 +523,7 @@
ChannelTlv channel;
channel.Init();
channel.SetChannel(aDataset.mChannel);
- SuccessOrExit(error = message->Append(&channel, sizeof(channel)));
+ SuccessOrExit(error = message->AppendTlv(channel));
}
if (aDataset.mComponents.mIsChannelMaskPresent)
@@ -531,7 +531,7 @@
ChannelMaskTlv channelMask;
channelMask.Init();
channelMask.SetChannelMask(aDataset.mChannelMask);
- SuccessOrExit(error = message->Append(&channelMask, sizeof(channelMask)));
+ SuccessOrExit(error = message->AppendTlv(channelMask));
}
if (aLength > 0)
diff --git a/src/core/meshcop/dataset_manager_ftd.cpp b/src/core/meshcop/dataset_manager_ftd.cpp
index 073ee65..7396a0a 100644
--- a/src/core/meshcop/dataset_manager_ftd.cpp
+++ b/src/core/meshcop/dataset_manager_ftd.cpp
@@ -303,7 +303,7 @@
state.Init();
state.SetState(aState);
- SuccessOrExit(error = message->Append(&state, sizeof(state)));
+ SuccessOrExit(error = message->AppendTlv(state));
SuccessOrExit(error = Get<Coap::Coap>().SendMessage(*message, aMessageInfo));
diff --git a/src/core/meshcop/energy_scan_client.cpp b/src/core/meshcop/energy_scan_client.cpp
index 05da7fc..db417ad 100644
--- a/src/core/meshcop/energy_scan_client.cpp
+++ b/src/core/meshcop/energy_scan_client.cpp
@@ -89,23 +89,23 @@
sessionId.Init();
sessionId.SetCommissionerSessionId(Get<MeshCoP::Commissioner>().GetSessionId());
- SuccessOrExit(error = message->Append(&sessionId, sizeof(sessionId)));
+ SuccessOrExit(error = message->AppendTlv(sessionId));
channelMask.Init();
channelMask.SetChannelMask(aChannelMask);
- SuccessOrExit(error = message->Append(&channelMask, channelMask.GetSize()));
+ SuccessOrExit(error = message->AppendTlv(channelMask));
count.Init();
count.SetCount(aCount);
- SuccessOrExit(error = message->Append(&count, sizeof(count)));
+ SuccessOrExit(error = message->AppendTlv(count));
period.Init();
period.SetPeriod(aPeriod);
- SuccessOrExit(error = message->Append(&period, sizeof(period)));
+ SuccessOrExit(error = message->AppendTlv(period));
scanDuration.Init();
scanDuration.SetScanDuration(aScanDuration);
- SuccessOrExit(error = message->Append(&scanDuration, sizeof(scanDuration)));
+ SuccessOrExit(error = message->AppendTlv(scanDuration));
messageInfo.SetSockAddr(Get<Mle::MleRouter>().GetMeshLocal16());
messageInfo.SetPeerAddr(aAddress);
diff --git a/src/core/meshcop/joiner.cpp b/src/core/meshcop/joiner.cpp
index 6174af5..9928447 100644
--- a/src/core/meshcop/joiner.cpp
+++ b/src/core/meshcop/joiner.cpp
@@ -408,33 +408,33 @@
stateTlv.Init();
stateTlv.SetState(MeshCoP::StateTlv::kAccept);
- SuccessOrExit(error = mFinalizeMessage->Append(&stateTlv, sizeof(stateTlv)));
+ SuccessOrExit(error = mFinalizeMessage->AppendTlv(stateTlv));
vendorNameTlv.Init();
vendorNameTlv.SetVendorName(aVendorName);
- SuccessOrExit(error = mFinalizeMessage->Append(&vendorNameTlv, vendorNameTlv.GetSize()));
+ SuccessOrExit(error = mFinalizeMessage->AppendTlv(vendorNameTlv));
vendorModelTlv.Init();
vendorModelTlv.SetVendorModel(aVendorModel);
- SuccessOrExit(error = mFinalizeMessage->Append(&vendorModelTlv, vendorModelTlv.GetSize()));
+ SuccessOrExit(error = mFinalizeMessage->AppendTlv(vendorModelTlv));
vendorSwVersionTlv.Init();
vendorSwVersionTlv.SetVendorSwVersion(aVendorSwVersion);
- SuccessOrExit(error = mFinalizeMessage->Append(&vendorSwVersionTlv, vendorSwVersionTlv.GetSize()));
+ SuccessOrExit(error = mFinalizeMessage->AppendTlv(vendorSwVersionTlv));
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->Append(&vendorStackVersionTlv, vendorStackVersionTlv.GetSize()));
+ SuccessOrExit(error = mFinalizeMessage->AppendTlv(vendorStackVersionTlv));
if (aVendorData != NULL)
{
VendorDataTlv vendorDataTlv;
vendorDataTlv.Init();
vendorDataTlv.SetVendorData(aVendorData);
- SuccessOrExit(error = mFinalizeMessage->Append(&vendorDataTlv, vendorDataTlv.GetSize()));
+ SuccessOrExit(error = mFinalizeMessage->AppendTlv(vendorDataTlv));
}
provisioningUrlTlv.Init();
@@ -442,7 +442,7 @@
if (provisioningUrlTlv.GetLength() > 0)
{
- SuccessOrExit(error = mFinalizeMessage->Append(&provisioningUrlTlv, provisioningUrlTlv.GetSize()));
+ SuccessOrExit(error = mFinalizeMessage->AppendTlv(provisioningUrlTlv));
}
exit:
diff --git a/src/core/meshcop/joiner_router.cpp b/src/core/meshcop/joiner_router.cpp
index bf9833c..bc9214c 100644
--- a/src/core/meshcop/joiner_router.cpp
+++ b/src/core/meshcop/joiner_router.cpp
@@ -155,15 +155,15 @@
udpPort.Init();
udpPort.SetUdpPort(aMessageInfo.GetPeerPort());
- SuccessOrExit(error = message->Append(&udpPort, sizeof(udpPort)));
+ SuccessOrExit(error = message->AppendTlv(udpPort));
iid.Init();
iid.SetIid(aMessageInfo.GetPeerAddr().mFields.m8 + 8);
- SuccessOrExit(error = message->Append(&iid, sizeof(iid)));
+ SuccessOrExit(error = message->AppendTlv(iid));
rloc.Init();
rloc.SetJoinerRouterLocator(Get<Mle::MleRouter>().GetRloc16());
- SuccessOrExit(error = message->Append(&rloc, sizeof(rloc)));
+ SuccessOrExit(error = message->AppendTlv(rloc));
tlv.SetType(Tlv::kJoinerDtlsEncapsulation);
tlv.SetLength(aMessage.GetLength() - aMessage.GetOffset());
@@ -289,69 +289,69 @@
masterKey.Init();
masterKey.SetNetworkMasterKey(Get<KeyManager>().GetMasterKey());
- SuccessOrExit(error = message->Append(&masterKey, sizeof(masterKey)));
+ SuccessOrExit(error = message->AppendTlv(masterKey));
meshLocalPrefix.Init();
meshLocalPrefix.SetMeshLocalPrefix(Get<Mle::MleRouter>().GetMeshLocalPrefix());
- SuccessOrExit(error = message->Append(&meshLocalPrefix, sizeof(meshLocalPrefix)));
+ SuccessOrExit(error = message->AppendTlv(meshLocalPrefix));
extendedPanId.Init();
extendedPanId.SetExtendedPanId(Get<Mac::Mac>().GetExtendedPanId());
- SuccessOrExit(error = message->Append(&extendedPanId, sizeof(extendedPanId)));
+ SuccessOrExit(error = message->AppendTlv(extendedPanId));
networkName.Init();
networkName.SetNetworkName(Get<Mac::Mac>().GetNetworkName());
- SuccessOrExit(error = message->Append(&networkName, sizeof(Tlv) + networkName.GetLength()));
+ SuccessOrExit(error = message->AppendTlv(networkName));
Get<ActiveDataset>().Read(dataset);
if ((tlv = dataset.Get(Tlv::kActiveTimestamp)) != NULL)
{
- SuccessOrExit(error = message->Append(tlv, sizeof(Tlv) + tlv->GetLength()));
+ SuccessOrExit(error = message->AppendTlv(*tlv));
}
else
{
ActiveTimestampTlv activeTimestamp;
activeTimestamp.Init();
- SuccessOrExit(error = message->Append(&activeTimestamp, sizeof(activeTimestamp)));
+ SuccessOrExit(error = message->AppendTlv(activeTimestamp));
}
if ((tlv = dataset.Get(Tlv::kChannelMask)) != NULL)
{
- SuccessOrExit(error = message->Append(tlv, sizeof(Tlv) + tlv->GetLength()));
+ SuccessOrExit(error = message->AppendTlv(*tlv));
}
else
{
ChannelMaskBaseTlv channelMask;
channelMask.Init();
- SuccessOrExit(error = message->Append(&channelMask, sizeof(channelMask)));
+ SuccessOrExit(error = message->AppendTlv(channelMask));
}
if ((tlv = dataset.Get(Tlv::kPSKc)) != NULL)
{
- SuccessOrExit(error = message->Append(tlv, sizeof(Tlv) + tlv->GetLength()));
+ SuccessOrExit(error = message->AppendTlv(*tlv));
}
else
{
PSKcTlv pskc;
pskc.Init();
- SuccessOrExit(error = message->Append(&pskc, sizeof(pskc)));
+ SuccessOrExit(error = message->AppendTlv(pskc));
}
if ((tlv = dataset.Get(Tlv::kSecurityPolicy)) != NULL)
{
- SuccessOrExit(error = message->Append(tlv, sizeof(Tlv) + tlv->GetLength()));
+ SuccessOrExit(error = message->AppendTlv(*tlv));
}
else
{
SecurityPolicyTlv securityPolicy;
securityPolicy.Init();
- SuccessOrExit(error = message->Append(&securityPolicy, sizeof(securityPolicy)));
+ SuccessOrExit(error = message->AppendTlv(securityPolicy));
}
networkKeySequence.Init();
networkKeySequence.SetNetworkKeySequence(Get<KeyManager>().GetCurrentKeySequence());
- SuccessOrExit(error = message->Append(&networkKeySequence, networkKeySequence.GetSize()));
+ SuccessOrExit(error = message->AppendTlv(networkKeySequence));
messageInfo = aMessageInfo;
messageInfo.SetPeerPort(kCoapUdpPort);
diff --git a/src/core/meshcop/leader.cpp b/src/core/meshcop/leader.cpp
index fc390bd..0381c81 100644
--- a/src/core/meshcop/leader.cpp
+++ b/src/core/meshcop/leader.cpp
@@ -134,19 +134,18 @@
state.Init();
state.SetState(aState);
- SuccessOrExit(error = message->Append(&state, sizeof(state)));
+ SuccessOrExit(error = message->AppendTlv(state));
if (mTimer.IsRunning())
{
- uint16_t len = sizeof(Tlv) + mCommissionerId.GetLength();
- SuccessOrExit(error = message->Append(&mCommissionerId, len));
+ SuccessOrExit(error = message->AppendTlv(mCommissionerId));
}
if (aState == StateTlv::kAccept)
{
sessionId.Init();
sessionId.SetCommissionerSessionId(mSessionId);
- SuccessOrExit(error = message->Append(&sessionId, sizeof(sessionId)));
+ SuccessOrExit(error = message->AppendTlv(sessionId));
}
SuccessOrExit(error = Get<Coap::Coap>().SendMessage(*message, aMessageInfo));
@@ -231,7 +230,7 @@
state.Init();
state.SetState(aState);
- SuccessOrExit(error = message->Append(&state, sizeof(state)));
+ SuccessOrExit(error = message->AppendTlv(state));
SuccessOrExit(error = Get<Coap::Coap>().SendMessage(*message, aMessageInfo));
diff --git a/src/core/meshcop/panid_query_client.cpp b/src/core/meshcop/panid_query_client.cpp
index 44344af..50d517c 100644
--- a/src/core/meshcop/panid_query_client.cpp
+++ b/src/core/meshcop/panid_query_client.cpp
@@ -84,15 +84,15 @@
sessionId.Init();
sessionId.SetCommissionerSessionId(Get<MeshCoP::Commissioner>().GetSessionId());
- SuccessOrExit(error = message->Append(&sessionId, sizeof(sessionId)));
+ SuccessOrExit(error = message->AppendTlv(sessionId));
channelMask.Init();
channelMask.SetChannelMask(aChannelMask);
- SuccessOrExit(error = message->Append(&channelMask, channelMask.GetSize()));
+ SuccessOrExit(error = message->AppendTlv(channelMask));
panId.Init();
panId.SetPanId(aPanId);
- SuccessOrExit(error = message->Append(&panId, sizeof(panId)));
+ SuccessOrExit(error = message->AppendTlv(panId));
messageInfo.SetSockAddr(Get<Mle::MleRouter>().GetMeshLocal16());
messageInfo.SetPeerAddr(aAddress);
diff --git a/src/core/thread/address_resolver.cpp b/src/core/thread/address_resolver.cpp
index e76437e..0d94363 100644
--- a/src/core/thread/address_resolver.cpp
+++ b/src/core/thread/address_resolver.cpp
@@ -331,7 +331,7 @@
targetTlv.Init();
targetTlv.SetTarget(aEid);
- SuccessOrExit(error = message->Append(&targetTlv, sizeof(targetTlv)));
+ SuccessOrExit(error = message->AppendTlv(targetTlv));
messageInfo.GetPeerAddr().mFields.m16[0] = HostSwap16(0xff03);
messageInfo.GetPeerAddr().mFields.m16[7] = HostSwap16(0x0002);
@@ -466,8 +466,8 @@
message->AppendUriPathOptions(OT_URI_PATH_ADDRESS_ERROR);
message->SetPayloadMarker();
- SuccessOrExit(error = message->Append(&aTarget, sizeof(aTarget)));
- SuccessOrExit(error = message->Append(&aEid, sizeof(aEid)));
+ SuccessOrExit(error = message->AppendTlv(aTarget));
+ SuccessOrExit(error = message->AppendTlv(aEid));
if (aDestination == NULL)
{
@@ -648,16 +648,16 @@
message->AppendUriPathOptions(OT_URI_PATH_ADDRESS_NOTIFY);
message->SetPayloadMarker();
- SuccessOrExit(error = message->Append(&aTargetTlv, sizeof(aTargetTlv)));
- SuccessOrExit(error = message->Append(&aMlEidTlv, sizeof(aMlEidTlv)));
+ SuccessOrExit(error = message->AppendTlv(aTargetTlv));
+ SuccessOrExit(error = message->AppendTlv(aMlEidTlv));
rloc16Tlv.Init();
rloc16Tlv.SetRloc16(Get<Mle::MleRouter>().GetRloc16());
- SuccessOrExit(error = message->Append(&rloc16Tlv, sizeof(rloc16Tlv)));
+ SuccessOrExit(error = message->AppendTlv(rloc16Tlv));
if (aLastTransactionTimeTlv != NULL)
{
- SuccessOrExit(error = message->Append(aLastTransactionTimeTlv, sizeof(*aLastTransactionTimeTlv)));
+ SuccessOrExit(error = message->AppendTlv(*aLastTransactionTimeTlv));
}
messageInfo.SetPeerAddr(aDestination);
diff --git a/src/core/thread/energy_scan_server.cpp b/src/core/thread/energy_scan_server.cpp
index f752212..142d573 100644
--- a/src/core/thread/energy_scan_server.cpp
+++ b/src/core/thread/energy_scan_server.cpp
@@ -193,7 +193,7 @@
channelMask.Init();
channelMask.SetChannelMask(mChannelMask);
- SuccessOrExit(error = message->Append(&channelMask, channelMask.GetSize()));
+ SuccessOrExit(error = message->AppendTlv(channelMask));
energyList.Init();
energyList.SetLength(mScanResultsLength);
diff --git a/src/core/thread/mle.cpp b/src/core/thread/mle.cpp
index cde4d67..36042ed 100644
--- a/src/core/thread/mle.cpp
+++ b/src/core/thread/mle.cpp
@@ -539,7 +539,7 @@
discoveryRequest.Init();
discoveryRequest.SetVersion(kThreadVersion);
discoveryRequest.SetJoiner(aJoiner);
- SuccessOrExit(error = message->Append(&discoveryRequest, sizeof(discoveryRequest)));
+ SuccessOrExit(error = message->AppendTlv(discoveryRequest));
tlv.SetLength(static_cast<uint8_t>(message->GetLength() - startOffset));
message->Write(startOffset - sizeof(tlv), sizeof(tlv), &tlv);
@@ -1131,7 +1131,7 @@
tlv.Init();
tlv.SetRloc16(GetRloc16());
- return aMessage.Append(&tlv, sizeof(tlv));
+ return aMessage.AppendTlv(tlv);
}
otError Mle::AppendStatus(Message &aMessage, StatusTlv::Status aStatus)
@@ -1141,7 +1141,7 @@
tlv.Init();
tlv.SetStatus(aStatus);
- return aMessage.Append(&tlv, sizeof(tlv));
+ return aMessage.AppendTlv(tlv);
}
otError Mle::AppendMode(Message &aMessage, uint8_t aMode)
@@ -1151,7 +1151,7 @@
tlv.Init();
tlv.SetMode(aMode);
- return aMessage.Append(&tlv, sizeof(tlv));
+ return aMessage.AppendTlv(tlv);
}
otError Mle::AppendTimeout(Message &aMessage, uint32_t aTimeout)
@@ -1161,7 +1161,7 @@
tlv.Init();
tlv.SetTimeout(aTimeout);
- return aMessage.Append(&tlv, sizeof(tlv));
+ return aMessage.AppendTlv(tlv);
}
otError Mle::AppendChallenge(Message &aMessage, const uint8_t *aChallenge, uint8_t aChallengeLength)
@@ -1200,7 +1200,7 @@
tlv.Init();
tlv.SetFrameCounter(Get<KeyManager>().GetMacFrameCounter());
- return aMessage.Append(&tlv, sizeof(tlv));
+ return aMessage.AppendTlv(tlv);
}
otError Mle::AppendMleFrameCounter(Message &aMessage)
@@ -1210,7 +1210,7 @@
tlv.Init();
tlv.SetFrameCounter(Get<KeyManager>().GetMleFrameCounter());
- return aMessage.Append(&tlv, sizeof(tlv));
+ return aMessage.AppendTlv(tlv);
}
otError Mle::AppendAddress16(Message &aMessage, uint16_t aRloc16)
@@ -1220,7 +1220,7 @@
tlv.Init();
tlv.SetRloc16(aRloc16);
- return aMessage.Append(&tlv, sizeof(tlv));
+ return aMessage.AppendTlv(tlv);
}
otError Mle::AppendLeaderData(Message &aMessage)
@@ -1229,7 +1229,7 @@
mLeaderData.SetDataVersion(Get<NetworkData::Leader>().GetVersion());
mLeaderData.SetStableDataVersion(Get<NetworkData::Leader>().GetStableVersion());
- return aMessage.Append(&mLeaderData, sizeof(mLeaderData));
+ return aMessage.AppendTlv(mLeaderData);
}
void Mle::FillNetworkDataTlv(NetworkDataTlv &aTlv, bool aStableOnly)
@@ -1251,7 +1251,7 @@
tlv.Init();
FillNetworkDataTlv(tlv, aStableOnly);
- SuccessOrExit(error = aMessage.Append(&tlv, sizeof(Tlv) + tlv.GetLength()));
+ error = aMessage.AppendTlv(tlv);
exit:
return error;
@@ -1279,7 +1279,7 @@
tlv.Init();
tlv.SetMask(aScanMask);
- return aMessage.Append(&tlv, sizeof(tlv));
+ return aMessage.AppendTlv(tlv);
}
otError Mle::AppendLinkMargin(Message &aMessage, uint8_t aLinkMargin)
@@ -1289,7 +1289,7 @@
tlv.Init();
tlv.SetLinkMargin(aLinkMargin);
- return aMessage.Append(&tlv, sizeof(tlv));
+ return aMessage.AppendTlv(tlv);
}
otError Mle::AppendVersion(Message &aMessage)
@@ -1299,7 +1299,7 @@
tlv.Init();
tlv.SetVersion(kThreadVersion);
- return aMessage.Append(&tlv, sizeof(tlv));
+ return aMessage.AppendTlv(tlv);
}
otError Mle::AppendAddressRegistration(Message &aMessage)
@@ -1382,7 +1382,7 @@
tlv.Init();
- return aMessage.Append(&tlv, sizeof(tlv));
+ return aMessage.AppendTlv(tlv);
}
otError Mle::AppendTimeParameter(Message &aMessage)
@@ -1393,7 +1393,7 @@
tlv.SetTimeSyncPeriod(Get<TimeSync>().GetTimeSyncPeriod());
tlv.SetXtalThreshold(Get<TimeSync>().GetXtalThreshold());
- return aMessage.Append(&tlv, sizeof(tlv));
+ return aMessage.AppendTlv(tlv);
}
otError Mle::AppendXtalAccuracy(Message &aMessage)
@@ -1403,7 +1403,7 @@
tlv.Init();
tlv.SetXtalAccuracy(otPlatTimeGetXtalAccuracy());
- return aMessage.Append(&tlv, sizeof(tlv));
+ return aMessage.AppendTlv(tlv);
}
#endif // OPENTHREAD_CONFIG_ENABLE_TIME_SYNC
@@ -1418,7 +1418,7 @@
timestampTlv.Init();
*static_cast<MeshCoP::Timestamp *>(×tampTlv) = *timestamp;
- error = aMessage.Append(×tampTlv, sizeof(timestampTlv));
+ error = aMessage.AppendTlv(timestampTlv);
exit:
return error;
@@ -1435,7 +1435,7 @@
timestampTlv.Init();
*static_cast<MeshCoP::Timestamp *>(×tampTlv) = *timestamp;
- error = aMessage.Append(×tampTlv, sizeof(timestampTlv));
+ error = aMessage.AppendTlv(timestampTlv);
exit:
return error;
@@ -2326,7 +2326,7 @@
channel.Init();
channel.SetChannel(Get<Mac::Mac>().GetPanChannel());
- SuccessOrExit(error = message->Append(&channel, sizeof(channel)));
+ SuccessOrExit(error = message->AppendTlv(channel));
if (aOrphanAnnounce)
{
@@ -2335,7 +2335,7 @@
activeTimestamp.SetTicks(0);
activeTimestamp.SetAuthoritative(true);
- SuccessOrExit(error = message->Append(&activeTimestamp, sizeof(activeTimestamp)));
+ SuccessOrExit(error = message->AppendTlv(activeTimestamp));
}
else
{
@@ -2344,7 +2344,7 @@
panid.Init();
panid.SetPanId(Get<Mac::Mac>().GetPanId());
- SuccessOrExit(error = message->Append(&panid, sizeof(panid)));
+ SuccessOrExit(error = message->AppendTlv(panid));
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 dec3d71..020e231 100644
--- a/src/core/thread/mle_router.cpp
+++ b/src/core/thread/mle_router.cpp
@@ -2722,7 +2722,7 @@
commissionerUdpPort.Init();
commissionerUdpPort.SetUdpPort(MeshCoP::kBorderAgentUdpPort);
- SuccessOrExit(error = message->Append(&commissionerUdpPort, sizeof(commissionerUdpPort)));
+ SuccessOrExit(error = message->AppendTlv(commissionerUdpPort));
discoveryResponse.SetNativeCommissioner(true);
}
@@ -2731,17 +2731,17 @@
discoveryResponse.SetNativeCommissioner(false);
}
- SuccessOrExit(error = message->Append(&discoveryResponse, sizeof(discoveryResponse)));
+ SuccessOrExit(error = message->AppendTlv(discoveryResponse));
// Extended PAN ID TLV
extPanId.Init();
extPanId.SetExtendedPanId(Get<Mac::Mac>().GetExtendedPanId());
- SuccessOrExit(error = message->Append(&extPanId, sizeof(extPanId)));
+ SuccessOrExit(error = message->AppendTlv(extPanId));
// Network Name TLV
networkName.Init();
networkName.SetNetworkName(Get<Mac::Mac>().GetNetworkName());
- SuccessOrExit(error = message->Append(&networkName, sizeof(tlv) + networkName.GetLength()));
+ SuccessOrExit(error = message->AppendTlv(networkName));
#if OPENTHREAD_CONFIG_ENABLE_STEERING_DATA_SET_OOB
@@ -2749,7 +2749,7 @@
// Otherwise use the one from commissioning data.
if (!mSteeringData.IsCleared())
{
- SuccessOrExit(error = message->Append(&mSteeringData, sizeof(Tlv) + mSteeringData.GetLength()));
+ SuccessOrExit(error = message->AppendTlv(mSteeringData));
}
else
#endif // OPENTHREAD_CONFIG_ENABLE_STEERING_DATA_SET_OOB
@@ -2759,14 +2759,14 @@
if (steeringData != NULL)
{
- SuccessOrExit(error = message->Append(steeringData, sizeof(*steeringData) + steeringData->GetLength()));
+ SuccessOrExit(error = message->AppendTlv(*steeringData));
}
}
// Joiner UDP Port TLV
joinerUdpPort.Init();
joinerUdpPort.SetUdpPort(Get<MeshCoP::JoinerRouter>().GetJoinerUdpPort());
- SuccessOrExit(error = message->Append(&joinerUdpPort, sizeof(tlv) + joinerUdpPort.GetLength()));
+ SuccessOrExit(error = message->AppendTlv(joinerUdpPort));
tlv.SetLength(static_cast<uint8_t>(message->GetLength() - startOffset));
message->Write(startOffset - sizeof(tlv), sizeof(tlv), &tlv);
@@ -3799,18 +3799,18 @@
macAddr64Tlv.Init();
macAddr64Tlv.SetMacAddr(Get<Mac::Mac>().GetExtAddress());
- SuccessOrExit(error = message->Append(&macAddr64Tlv, sizeof(macAddr64Tlv)));
+ SuccessOrExit(error = message->AppendTlv(macAddr64Tlv));
if (IsRouterIdValid(mPreviousRouterId))
{
rlocTlv.Init();
rlocTlv.SetRloc16(GetRloc16(mPreviousRouterId));
- SuccessOrExit(error = message->Append(&rlocTlv, sizeof(rlocTlv)));
+ SuccessOrExit(error = message->AppendTlv(rlocTlv));
}
statusTlv.Init();
statusTlv.SetStatus(aStatus);
- SuccessOrExit(error = message->Append(&statusTlv, sizeof(statusTlv)));
+ SuccessOrExit(error = message->AppendTlv(statusTlv));
#if OPENTHREAD_CONFIG_ENABLE_TIME_SYNC
SuccessOrExit(error = AppendXtalAccuracy(*message));
@@ -3853,11 +3853,11 @@
rlocTlv.Init();
rlocTlv.SetRloc16(GetRloc16(mRouterId));
- SuccessOrExit(error = message->Append(&rlocTlv, sizeof(rlocTlv)));
+ SuccessOrExit(error = message->AppendTlv(rlocTlv));
macAddr64Tlv.Init();
macAddr64Tlv.SetMacAddr(Get<Mac::Mac>().GetExtAddress());
- SuccessOrExit(error = message->Append(&macAddr64Tlv, sizeof(macAddr64Tlv)));
+ SuccessOrExit(error = message->AppendTlv(macAddr64Tlv));
messageInfo.SetSockAddr(GetMeshLocal16());
SuccessOrExit(error = GetLeaderAddress(messageInfo.GetPeerAddr()));
@@ -4098,13 +4098,13 @@
statusTlv.Init();
statusTlv.SetStatus(aRouter == NULL ? statusTlv.kNoAddressAvailable : statusTlv.kSuccess);
- SuccessOrExit(error = message->Append(&statusTlv, sizeof(statusTlv)));
+ SuccessOrExit(error = message->AppendTlv(statusTlv));
if (aRouter != NULL)
{
rlocTlv.Init();
rlocTlv.SetRloc16(aRouter->GetRloc16());
- SuccessOrExit(error = message->Append(&rlocTlv, sizeof(rlocTlv)));
+ SuccessOrExit(error = message->AppendTlv(rlocTlv));
routerMaskTlv.Init();
routerMaskTlv.SetIdSequence(mRouterTable.GetRouterIdSequence());
@@ -4118,7 +4118,7 @@
}
}
- SuccessOrExit(error = message->Append(&routerMaskTlv, sizeof(routerMaskTlv)));
+ SuccessOrExit(error = message->AppendTlv(routerMaskTlv));
}
SuccessOrExit(error = Get<Coap::Coap>().SendMessage(*message, aMessageInfo));
@@ -4300,15 +4300,12 @@
otError MleRouter::AppendConnectivity(Message &aMessage)
{
- otError error;
ConnectivityTlv tlv;
tlv.Init();
FillConnectivityTlv(tlv);
- SuccessOrExit(error = aMessage.Append(&tlv, sizeof(tlv)));
-exit:
- return error;
+ return aMessage.AppendTlv(tlv);
}
otError MleRouter::AppendChildAddresses(Message &aMessage, Child &aChild)
@@ -4421,15 +4418,12 @@
otError MleRouter::AppendRoute(Message &aMessage)
{
- otError error;
RouteTlv tlv;
tlv.Init();
FillRouteTlv(tlv);
- SuccessOrExit(error = aMessage.Append(&tlv, sizeof(Tlv) + tlv.GetLength()));
-exit:
- return error;
+ return aMessage.AppendTlv(tlv);
}
otError MleRouter::AppendActiveDataset(Message &aMessage)
diff --git a/src/core/thread/network_data.cpp b/src/core/thread/network_data.cpp
index df4f525..309ee55 100644
--- a/src/core/thread/network_data.cpp
+++ b/src/core/thread/network_data.cpp
@@ -1024,7 +1024,7 @@
ThreadRloc16Tlv rloc16Tlv;
rloc16Tlv.Init();
rloc16Tlv.SetRloc16(aRloc16);
- SuccessOrExit(error = message->Append(&rloc16Tlv, sizeof(rloc16Tlv)));
+ SuccessOrExit(error = message->AppendTlv(rloc16Tlv));
}
Get<Mle::MleRouter>().GetLeaderAloc(messageInfo.GetPeerAddr());
diff --git a/src/core/thread/network_data_leader_ftd.cpp b/src/core/thread/network_data_leader_ftd.cpp
index b8687e8..675aff8 100644
--- a/src/core/thread/network_data_leader_ftd.cpp
+++ b/src/core/thread/network_data_leader_ftd.cpp
@@ -354,7 +354,7 @@
{
if (cur->GetType() == aTlvs[index])
{
- SuccessOrExit(error = message->Append(cur, sizeof(NetworkDataTlv) + cur->GetLength()));
+ SuccessOrExit(error = message->AppendTlv(*cur));
break;
}
}
@@ -394,7 +394,7 @@
state.Init();
state.SetState(aState);
- SuccessOrExit(error = message->Append(&state, sizeof(state)));
+ SuccessOrExit(error = message->AppendTlv(state));
SuccessOrExit(error = Get<Coap::Coap>().SendMessage(*message, aMessageInfo));
diff --git a/src/core/thread/network_diagnostic.cpp b/src/core/thread/network_diagnostic.cpp
index ce78314..186bc08 100644
--- a/src/core/thread/network_diagnostic.cpp
+++ b/src/core/thread/network_diagnostic.cpp
@@ -301,7 +301,7 @@
ExtMacAddressTlv tlv;
tlv.Init();
tlv.SetMacAddr(Get<Mac::Mac>().GetExtAddress());
- SuccessOrExit(error = aResponse.Append(&tlv, sizeof(tlv)));
+ SuccessOrExit(error = aResponse.AppendTlv(tlv));
break;
}
@@ -310,7 +310,7 @@
Address16Tlv tlv;
tlv.Init();
tlv.SetRloc16(Get<Mle::MleRouter>().GetRloc16());
- SuccessOrExit(error = aResponse.Append(&tlv, sizeof(tlv)));
+ SuccessOrExit(error = aResponse.AppendTlv(tlv));
break;
}
@@ -319,7 +319,7 @@
ModeTlv tlv;
tlv.Init();
tlv.SetMode(Get<Mle::MleRouter>().GetDeviceMode());
- SuccessOrExit(error = aResponse.Append(&tlv, sizeof(tlv)));
+ SuccessOrExit(error = aResponse.AppendTlv(tlv));
break;
}
@@ -330,7 +330,7 @@
TimeoutTlv tlv;
tlv.Init();
tlv.SetTimeout(TimerMilli::MsecToSec(Get<DataPollManager>().GetKeepAlivePollPeriod()));
- SuccessOrExit(error = aResponse.Append(&tlv, sizeof(tlv)));
+ SuccessOrExit(error = aResponse.AppendTlv(tlv));
}
break;
@@ -341,7 +341,7 @@
ConnectivityTlv tlv;
tlv.Init();
Get<Mle::MleRouter>().FillConnectivityTlv(reinterpret_cast<Mle::ConnectivityTlv &>(tlv));
- SuccessOrExit(error = aResponse.Append(&tlv, sizeof(tlv)));
+ SuccessOrExit(error = aResponse.AppendTlv(tlv));
break;
}
@@ -351,7 +351,7 @@
RouteTlv tlv;
tlv.Init();
Get<Mle::MleRouter>().FillRouteTlv(reinterpret_cast<Mle::RouteTlv &>(tlv));
- SuccessOrExit(error = aResponse.Append(&tlv, tlv.GetSize()));
+ SuccessOrExit(error = aResponse.AppendTlv(tlv));
break;
}
#endif
@@ -360,7 +360,7 @@
{
LeaderDataTlv tlv(reinterpret_cast<const LeaderDataTlv &>(Get<Mle::MleRouter>().GetLeaderDataTlv()));
tlv.Init();
- SuccessOrExit(error = aResponse.Append(&tlv, tlv.GetSize()));
+ SuccessOrExit(error = aResponse.AppendTlv(tlv));
break;
}
@@ -370,7 +370,7 @@
tlv.Init();
Get<Mle::MleRouter>().FillNetworkDataTlv((reinterpret_cast<Mle::NetworkDataTlv &>(tlv)), false);
- SuccessOrExit(error = aResponse.Append(&tlv, tlv.GetSize()));
+ SuccessOrExit(error = aResponse.AppendTlv(tlv));
break;
}
@@ -386,7 +386,7 @@
memset(&tlv, 0, sizeof(tlv));
tlv.Init();
FillMacCountersTlv(tlv);
- SuccessOrExit(error = aResponse.Append(&tlv, tlv.GetSize()));
+ SuccessOrExit(error = aResponse.AppendTlv(tlv));
break;
}
@@ -434,7 +434,7 @@
}
tlv.SetLength(length);
- SuccessOrExit(error = aResponse.Append(&tlv, tlv.GetSize()));
+ SuccessOrExit(error = aResponse.AppendTlv(tlv));
break;
}
@@ -447,7 +447,7 @@
MaxChildTimeoutTlv tlv;
tlv.Init();
tlv.SetTimeout(maxTimeout);
- SuccessOrExit(error = aResponse.Append(&tlv, sizeof(tlv)));
+ SuccessOrExit(error = aResponse.AppendTlv(tlv));
}
break;
diff --git a/src/core/thread/panid_query_server.cpp b/src/core/thread/panid_query_server.cpp
index b83d23a..6396998 100644
--- a/src/core/thread/panid_query_server.cpp
+++ b/src/core/thread/panid_query_server.cpp
@@ -134,11 +134,11 @@
channelMask.Init();
channelMask.SetChannelMask(mChannelMask);
- SuccessOrExit(error = message->Append(&channelMask, channelMask.GetSize()));
+ SuccessOrExit(error = message->AppendTlv(channelMask));
panId.Init();
panId.SetPanId(mPanId);
- SuccessOrExit(error = message->Append(&panId, sizeof(panId)));
+ SuccessOrExit(error = message->AppendTlv(panId));
messageInfo.SetSockAddr(Get<Mle::MleRouter>().GetMeshLocal16());
messageInfo.SetPeerAddr(mCommissioner);