diff --git a/src/core/meshcop/dataset_manager.cpp b/src/core/meshcop/dataset_manager.cpp index b2fb3bb3a..2abd3d6fe 100644 --- a/src/core/meshcop/dataset_manager.cpp +++ b/src/core/meshcop/dataset_manager.cpp @@ -204,7 +204,7 @@ void DatasetManager::HandleTimer(void) const ActiveTimestampTlv *tlv = static_cast(dataset.Get(Tlv::kActiveTimestamp)); const Timestamp * pendingActiveTimestamp = static_cast(tlv); - if (pendingActiveTimestamp != NULL && mLocal.Compare(pendingActiveTimestamp) >= 0) + if (pendingActiveTimestamp != NULL && mLocal.Compare(pendingActiveTimestamp) == 0) { // stop registration attempts during dataset transition ExitNow(); @@ -450,7 +450,11 @@ void PendingDataset::Clear(void) void PendingDataset::ClearNetwork(void) { - Restore(); + Dataset dataset(mLocal.GetType()); + + mTimestamp.Init(); + mTimestampValid = false; + DatasetManager::Set(dataset); } otError PendingDataset::Set(const Timestamp &aTimestamp, const Message &aMessage, uint16_t aOffset, uint8_t aLength)