From 5f97abc356ddb88770cea04b61ab85a9dbadacbc Mon Sep 17 00:00:00 2001 From: Jonathan Hui Date: Thu, 6 Jul 2017 09:58:38 -0700 Subject: [PATCH] Remove restore method for local operational dataset. (#1958) With the local operational dataset being retrieved from non-volatile storage on demand, the restore method is now no longer necessary. This PR also fixes a bug in initializing the in-memory dataset representation when no operational dataset exists in non-volatile storage. --- src/core/meshcop/dataset_local.cpp | 23 +++-------------------- src/core/meshcop/dataset_manager.cpp | 8 +------- 2 files changed, 4 insertions(+), 27 deletions(-) diff --git a/src/core/meshcop/dataset_local.cpp b/src/core/meshcop/dataset_local.cpp index 9dedb1362..0390ada2b 100644 --- a/src/core/meshcop/dataset_local.cpp +++ b/src/core/meshcop/dataset_local.cpp @@ -76,9 +76,8 @@ otError DatasetLocal::Get(Dataset &aDataset) otError error; aDataset.mLength = sizeof(aDataset.mTlvs); - error = otPlatSettingsGet(GetInstance(), GetSettingsKey(), 0, aDataset.mTlvs, &aDataset.mLength); - SuccessOrExit(error); + VerifyOrExit(error == OT_ERROR_NONE, aDataset.mLength = 0); delayTimer = static_cast(aDataset.Get(Tlv::kDelayTimer)); VerifyOrExit(delayTimer); @@ -107,16 +106,15 @@ otError DatasetLocal::Get(otOperationalDataset &aDataset) const const Tlv *cur; const Tlv *end; - dataset.mLength = sizeof(dataset.mTlvs); + memset(&aDataset, 0, sizeof(aDataset)); + dataset.mLength = sizeof(dataset.mTlvs); error = otPlatSettingsGet(GetInstance(), GetSettingsKey(), 0, dataset.mTlvs, &dataset.mLength); SuccessOrExit(error); cur = reinterpret_cast(dataset.mTlvs); end = reinterpret_cast(dataset.mTlvs + dataset.mLength); - memset(&aDataset, 0, sizeof(aDataset)); - while (cur < end) { switch (cur->GetType()) @@ -404,21 +402,6 @@ exit: return error; } -otError DatasetLocal::Restore(void) -{ - Dataset dataset(mType); - otError error; - - dataset.mLength = sizeof(dataset.mTlvs); - error = otPlatSettingsGet(GetInstance(), GetSettingsKey(), 0, dataset.mTlvs, &dataset.mLength); - SuccessOrExit(error); - - mUpdateTime = Timer::GetNow(); - -exit: - return error; -} - uint16_t DatasetLocal::GetSettingsKey(void) const { uint16_t rval; diff --git a/src/core/meshcop/dataset_manager.cpp b/src/core/meshcop/dataset_manager.cpp index 86f97c3e3..12cb1c0e7 100644 --- a/src/core/meshcop/dataset_manager.cpp +++ b/src/core/meshcop/dataset_manager.cpp @@ -204,13 +204,7 @@ otError DatasetManager::ApplyConfiguration(void) otError DatasetManager::Restore(void) { - otError error; - - SuccessOrExit(error = mLocal.Restore()); - mLocal.Get(mNetwork); - -exit: - return error; + return mLocal.Get(mNetwork); } void DatasetManager::Clear(void)