diff --git a/src/core/thread/meshcop_dataset_manager.cpp b/src/core/thread/meshcop_dataset_manager.cpp index a1f04e7e5..30d59e675 100644 --- a/src/core/thread/meshcop_dataset_manager.cpp +++ b/src/core/thread/meshcop_dataset_manager.cpp @@ -299,10 +299,11 @@ void DatasetManager::HandleSet(Coap::Header &aHeader, Message &aMessage, const I if (data->GetType() == Tlv::kCommissionerSessionId) { uint16_t sessionId; + uint16_t rxSessionId; sessionId = static_cast(data)->GetCommissionerSessionId(); - VerifyOrExit(sessionId == static_cast(&tlv)->GetCommissionerSessionId(), - state = StateTlv::kReject); + aMessage.Read(offset + sizeof(tlv), sizeof(rxSessionId), &rxSessionId); + VerifyOrExit(sessionId == rxSessionId, state = StateTlv::kReject); break; } diff --git a/src/core/thread/mle.cpp b/src/core/thread/mle.cpp index e0e34943b..59efd1840 100644 --- a/src/core/thread/mle.cpp +++ b/src/core/thread/mle.cpp @@ -489,6 +489,11 @@ ThreadError Mle::SetMeshLocalPrefix(const uint8_t *aMeshLocalPrefix) // Add the address back into the table. mNetif.AddUnicastAddress(mMeshLocal64); + if (mDeviceState >= kDeviceStateChild) + { + mNetif.AddUnicastAddress(mMeshLocal16); + } + // Changing the prefix also causes the mesh local address to be different. mNetif.SetStateChangedFlags(OT_IP6_ML_ADDR_CHANGED); diff --git a/tools/harness-thci/ARM.py b/tools/harness-thci/ARM.py index c712be3cf..5518583b8 100644 --- a/tools/harness-thci/ARM.py +++ b/tools/harness-thci/ARM.py @@ -1965,7 +1965,7 @@ class ARM(IThci): if xPanId != None: cmd += ' panid ' - cmd + str(xPanId) + cmd += str(xPanId) if xDelayTimer != None: cmd += ' delay '