mirror of
https://github.com/espressif/openthread.git
synced 2026-09-21 08:27:33 +00:00
[mac] make sure network name is always updated (#3246)
This commit is contained in:
committed by
Jonathan Hui
parent
53ff24a6b4
commit
706b393a7b
@@ -126,6 +126,7 @@ Mac::Mac(Instance &aInstance)
|
||||
mExtAddress.GenerateRandom();
|
||||
mCcaSuccessRateTracker.Reset();
|
||||
memset(&mCounters, 0, sizeof(otMacCounters));
|
||||
memset(&mNetworkName, 0, sizeof(otNetworkName));
|
||||
|
||||
otPlatRadioEnable(&GetInstance());
|
||||
|
||||
@@ -511,15 +512,15 @@ otError Mac::SetNetworkName(const char *aNetworkName)
|
||||
|
||||
otError Mac::SetNetworkName(const char *aBuffer, uint8_t aLength)
|
||||
{
|
||||
otError error = OT_ERROR_NONE;
|
||||
uint8_t len = static_cast<uint8_t>(strnlen(aBuffer, aLength));
|
||||
otError error = OT_ERROR_NONE;
|
||||
uint8_t newLen = static_cast<uint8_t>(strnlen(aBuffer, aLength));
|
||||
|
||||
VerifyOrExit(len <= OT_NETWORK_NAME_MAX_SIZE, error = OT_ERROR_INVALID_ARGS);
|
||||
VerifyOrExit(memcmp(mNetworkName.m8, aBuffer, len) != 0,
|
||||
VerifyOrExit(newLen <= OT_NETWORK_NAME_MAX_SIZE, error = OT_ERROR_INVALID_ARGS);
|
||||
VerifyOrExit(newLen != strlen(mNetworkName.m8) || memcmp(mNetworkName.m8, aBuffer, newLen) != 0,
|
||||
GetNotifier().SignalIfFirst(OT_CHANGED_THREAD_NETWORK_NAME));
|
||||
|
||||
memcpy(mNetworkName.m8, aBuffer, len);
|
||||
mNetworkName.m8[len] = 0;
|
||||
memcpy(mNetworkName.m8, aBuffer, newLen);
|
||||
mNetworkName.m8[newLen] = 0;
|
||||
GetNotifier().Signal(OT_CHANGED_THREAD_NETWORK_NAME);
|
||||
|
||||
exit:
|
||||
|
||||
Reference in New Issue
Block a user