mirror of
https://github.com/espressif/openthread.git
synced 2026-08-04 09:57:47 +00:00
[meshcop] simplify appending and parsing of NetworkNameTlv (#10441)
This commit simplifies the appending and parsing of `NetworkNameTlv` using `Append<StringTlvType>()` and `Read<StringTlvType>()` TLV helper methods.
This commit is contained in:
@@ -270,7 +270,7 @@ typedef SimpleTlvInfo<Tlv::kExtendedPanId, ExtendedPanId> ExtendedPanIdTlv;
|
||||
*
|
||||
*/
|
||||
OT_TOOL_PACKED_BEGIN
|
||||
class NetworkNameTlv : public Tlv, public TlvInfo<Tlv::kNetworkName>
|
||||
class NetworkNameTlv : public Tlv, public StringTlvInfo<Tlv::kNetworkName, NetworkName::kMaxSize>
|
||||
{
|
||||
public:
|
||||
/**
|
||||
|
||||
@@ -311,7 +311,6 @@ void DiscoverScanner::HandleDiscoveryResponse(Mle::RxInfo &aRxInfo) const
|
||||
Error error = kErrorNone;
|
||||
MeshCoP::Tlv meshcopTlv;
|
||||
MeshCoP::DiscoveryResponseTlv discoveryResponse;
|
||||
MeshCoP::NetworkNameTlv networkName;
|
||||
ScanResult result;
|
||||
uint16_t offset;
|
||||
uint16_t end;
|
||||
@@ -353,11 +352,7 @@ void DiscoverScanner::HandleDiscoveryResponse(Mle::RxInfo &aRxInfo) const
|
||||
break;
|
||||
|
||||
case MeshCoP::Tlv::kNetworkName:
|
||||
IgnoreError(aRxInfo.mMessage.Read(offset, networkName));
|
||||
if (networkName.IsValid())
|
||||
{
|
||||
IgnoreError(AsCoreType(&result.mNetworkName).Set(networkName.GetNetworkName()));
|
||||
}
|
||||
SuccessOrExit(error = Tlv::Read<MeshCoP::NetworkNameTlv>(aRxInfo.mMessage, offset, result.mNetworkName.m8));
|
||||
break;
|
||||
|
||||
case MeshCoP::Tlv::kSteeringData:
|
||||
|
||||
@@ -2700,7 +2700,6 @@ Error MleRouter::SendDiscoveryResponse(const Ip6::Address &aDestination, const M
|
||||
uint16_t startOffset;
|
||||
Tlv tlv;
|
||||
MeshCoP::DiscoveryResponseTlv discoveryResponseTlv;
|
||||
MeshCoP::NetworkNameTlv networkNameTlv;
|
||||
uint16_t delay;
|
||||
|
||||
VerifyOrExit((message = NewMleMessage(kCommandDiscoveryResponse)) != nullptr, error = kErrorNoBufs);
|
||||
@@ -2744,9 +2743,8 @@ Error MleRouter::SendDiscoveryResponse(const Ip6::Address &aDestination, const M
|
||||
SuccessOrExit(
|
||||
error = Tlv::Append<MeshCoP::ExtendedPanIdTlv>(*message, Get<MeshCoP::ExtendedPanIdManager>().GetExtPanId()));
|
||||
|
||||
networkNameTlv.Init();
|
||||
networkNameTlv.SetNetworkName(Get<MeshCoP::NetworkNameManager>().GetNetworkName().GetAsData());
|
||||
SuccessOrExit(error = networkNameTlv.AppendTo(*message));
|
||||
SuccessOrExit(error = Tlv::Append<MeshCoP::NetworkNameTlv>(
|
||||
*message, Get<MeshCoP::NetworkNameManager>().GetNetworkName().GetAsCString()));
|
||||
|
||||
SuccessOrExit(error = message->AppendSteeringDataTlv());
|
||||
|
||||
|
||||
Reference in New Issue
Block a user