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)