diff --git a/src/cli/cli_dataset.cpp b/src/cli/cli_dataset.cpp index ab335d775..936edb660 100644 --- a/src/cli/cli_dataset.cpp +++ b/src/cli/cli_dataset.cpp @@ -55,6 +55,7 @@ const Dataset::Command Dataset::sCommands[] = { {"commit", &Dataset::ProcessCommit}, {"delay", &Dataset::ProcessDelay}, {"extpanid", &Dataset::ProcessExtPanId}, + {"init", &Dataset::ProcessInit}, {"masterkey", &Dataset::ProcessMasterKey}, {"meshlocalprefix", &Dataset::ProcessMeshLocalPrefix}, {"mgmtgetcommand", &Dataset::ProcessMgmtGetCommand}, @@ -215,6 +216,29 @@ otError Dataset::ProcessHelp(int argc, char *argv[]) return OT_ERROR_NONE; } +otError Dataset::ProcessInit(int argc, char *argv[]) +{ + otError error = OT_ERROR_NONE; + + VerifyOrExit(argc > 0, error = OT_ERROR_INVALID_ARGS); + + if (strcmp(argv[0], "active") == 0) + { + SuccessOrExit(error = otDatasetGetActive(mInterpreter.mInstance, &sDataset)); + } + else if (strcmp(argv[0], "pending") == 0) + { + SuccessOrExit(error = otDatasetGetPending(mInterpreter.mInstance, &sDataset)); + } + else + { + ExitNow(error = OT_ERROR_INVALID_ARGS); + } + +exit: + return error; +} + otError Dataset::ProcessActive(int argc, char *argv[]) { OT_UNUSED_VARIABLE(argc); diff --git a/src/cli/cli_dataset.hpp b/src/cli/cli_dataset.hpp index 436d0485b..985b817ee 100644 --- a/src/cli/cli_dataset.hpp +++ b/src/cli/cli_dataset.hpp @@ -85,6 +85,7 @@ private: otError ProcessCommit(int argc, char *argv[]); otError ProcessDelay(int argc, char *argv[]); otError ProcessExtPanId(int argc, char *argv[]); + otError ProcessInit(int argc, char *argv[]); otError ProcessMasterKey(int argc, char *argv[]); otError ProcessMeshLocalPrefix(int argc, char *argv[]); otError ProcessNetworkName(int argc, char *argv[]);