From f13a4f8c24c11050923008dd5d17b70f458d122a Mon Sep 17 00:00:00 2001 From: Xiao Ma Date: Mon, 31 Oct 2016 06:06:57 +0800 Subject: [PATCH] Update local dataset copy when rolling back the old Active Timestamp. (#898) --- src/core/thread/meshcop_dataset_manager.cpp | 9 +++++---- src/core/thread/meshcop_dataset_manager.hpp | 2 +- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/src/core/thread/meshcop_dataset_manager.cpp b/src/core/thread/meshcop_dataset_manager.cpp index 3aa228adc..7da395d04 100644 --- a/src/core/thread/meshcop_dataset_manager.cpp +++ b/src/core/thread/meshcop_dataset_manager.cpp @@ -112,10 +112,11 @@ ThreadError DatasetManager::Clear(uint8_t &aFlags) return kThreadError_None; } -ThreadError DatasetManager::Set(const Dataset &aDataset, uint8_t &aFlags) +ThreadError DatasetManager::Set(const Dataset &aDataset) { mNetwork.Set(aDataset); - HandleNetworkUpdate(aFlags); + mLocal.Set(aDataset); + mLocal.Store(); return kThreadError_None; } @@ -496,6 +497,7 @@ ThreadError DatasetManager::SendSetRequest(const otOperationalDataset &aDataset, { ChannelTlv channel; channel.Init(); + channel.SetChannelPage(0); channel.SetChannel(aDataset.mChannel); SuccessOrExit(error = message->Append(&channel, sizeof(channel))); } @@ -739,9 +741,8 @@ exit: ThreadError ActiveDataset::Set(const Dataset &aDataset) { ThreadError error = kThreadError_None; - uint8_t flags; - SuccessOrExit(error = DatasetManager::Set(aDataset, flags)); + SuccessOrExit(error = DatasetManager::Set(aDataset)); ApplyConfiguration(); exit: diff --git a/src/core/thread/meshcop_dataset_manager.hpp b/src/core/thread/meshcop_dataset_manager.hpp index 9284b6298..f8de12ac1 100644 --- a/src/core/thread/meshcop_dataset_manager.hpp +++ b/src/core/thread/meshcop_dataset_manager.hpp @@ -72,7 +72,7 @@ protected: ThreadError Set(const otOperationalDataset &aDataset, uint8_t &aFlags); - ThreadError Set(const Dataset &aDataset, uint8_t &aFlags); + ThreadError Set(const Dataset &aDataset); ThreadError Set(const Timestamp &aTimestamp, const Message &aMessage, uint16_t aOffset, uint8_t aLength, uint8_t &aFlags);