diff options
-rw-r--r-- | openbsc/src/libctrl/control_if.c | 10 | ||||
-rw-r--r-- | openbsc/tests/ctrl_test_runner.py | 4 |
2 files changed, 13 insertions, 1 deletions
diff --git a/openbsc/src/libctrl/control_if.c b/openbsc/src/libctrl/control_if.c index b31f34fc6..b5db31da2 100644 --- a/openbsc/src/libctrl/control_if.c +++ b/openbsc/src/libctrl/control_if.c @@ -147,7 +147,7 @@ int ctrl_cmd_handle(struct ctrl_cmd *cmd, void *data) vector vline, cmdvec, cmds_vec; ret = CTRL_CMD_ERROR; - cmd->reply = "Someone forgot to fill in the reply."; + cmd->reply = NULL; node = CTRL_NODE_ROOT; cmd->node = net; @@ -238,6 +238,14 @@ int ctrl_cmd_handle(struct ctrl_cmd *cmd, void *data) cmd_free_strvec(vline); err: + if (!cmd->reply) { + LOGP(DCTRL, LOGL_ERROR, "cmd->reply has not been set.\n"); + if (ret == CTRL_CMD_ERROR) + cmd->reply = "An error has occured."; + else + cmd->reply = "Command has been handled."; + } + if (ret == CTRL_CMD_ERROR) cmd->type = CTRL_TYPE_ERROR; return ret; diff --git a/openbsc/tests/ctrl_test_runner.py b/openbsc/tests/ctrl_test_runner.py index 24732e031..dfdec403c 100644 --- a/openbsc/tests/ctrl_test_runner.py +++ b/openbsc/tests/ctrl_test_runner.py @@ -159,6 +159,10 @@ class TestCtrlBSC(TestCtrlBase): self.assertEquals(r['mtype'], 'ERROR') self.assertEquals(r['error'], 'Command not found') + r = self.do_set('rf_locked', '999') + self.assertEquals(r['mtype'], 'ERROR') + self.assertEquals(r['error'], 'Value failed verification.') + r = self.do_get('bts') self.assertEquals(r['mtype'], 'ERROR') self.assertEquals(r['error'], 'Error while parsing the index.') |