[cli] process exit in ot-ctl (#6605)

The exit command should only exit ot-ctl itself in daemon mode. This
commit adds processing exit command in the ot-ctl.

This commit also moves the exit command implementation out from core
as a user command on simulation and posix cli mode.
This commit is contained in:
Yakun Xu
2021-05-10 23:22:51 -07:00
committed by GitHub
parent 3c5c525da8
commit 833f8e2cff
5 changed files with 69 additions and 16 deletions
+17
View File
@@ -37,6 +37,7 @@
#include "openthread-system.h"
#include "cli/cli_config.h"
#include "common/code_utils.hpp"
/**
* This function initializes the CLI app.
@@ -76,6 +77,18 @@ void otTaskletsSignalPending(otInstance *aInstance)
OT_UNUSED_VARIABLE(aInstance);
}
#if OPENTHREAD_POSIX && !defined(FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION)
static void ProcessExit(void *aContext, uint8_t aArgsLength, char *aArgs[])
{
OT_UNUSED_VARIABLE(aContext);
OT_UNUSED_VARIABLE(aArgsLength);
OT_UNUSED_VARIABLE(aArgs);
exit(EXIT_SUCCESS);
}
static const otCliCommand kCommands[] = {{"exit", ProcessExit}};
#endif
int main(int argc, char *argv[])
{
otInstance *instance;
@@ -117,6 +130,10 @@ pseudo_reset:
otAppCliInit(instance);
#if OPENTHREAD_POSIX && !defined(FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION)
otCliSetUserCommands(kCommands, OT_ARRAY_LENGTH(kCommands), instance);
#endif
while (!otSysPseudoResetWasRequested())
{
otTaskletsProcess(instance);