diff --git a/src/core/meshcop/meshcop_tlvs.hpp b/src/core/meshcop/meshcop_tlvs.hpp index 084f84d8b..e35abf834 100644 --- a/src/core/meshcop/meshcop_tlvs.hpp +++ b/src/core/meshcop/meshcop_tlvs.hpp @@ -270,7 +270,7 @@ typedef SimpleTlvInfo ExtendedPanIdTlv; * */ OT_TOOL_PACKED_BEGIN -class NetworkNameTlv : public Tlv, public TlvInfo +class NetworkNameTlv : public Tlv, public StringTlvInfo { public: /** diff --git a/src/core/thread/discover_scanner.cpp b/src/core/thread/discover_scanner.cpp index 9cd997892..e264a7be8 100644 --- a/src/core/thread/discover_scanner.cpp +++ b/src/core/thread/discover_scanner.cpp @@ -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(aRxInfo.mMessage, offset, result.mNetworkName.m8)); break; case MeshCoP::Tlv::kSteeringData: diff --git a/src/core/thread/mle_router.cpp b/src/core/thread/mle_router.cpp index 9ee57cfa6..542cb370b 100644 --- a/src/core/thread/mle_router.cpp +++ b/src/core/thread/mle_router.cpp @@ -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(*message, Get().GetExtPanId())); - networkNameTlv.Init(); - networkNameTlv.SetNetworkName(Get().GetNetworkName().GetAsData()); - SuccessOrExit(error = networkNameTlv.AppendTo(*message)); + SuccessOrExit(error = Tlv::Append( + *message, Get().GetNetworkName().GetAsCString())); SuccessOrExit(error = message->AppendSteeringDataTlv());