This is merely a historical archive of years 2008-2021, before the migration to mailman3.
A maintained and still updated list archive can be found at https://lists.osmocom.org/hyperkitty/list/OpenBSC@lists.osmocom.org/.
Jacob Erlbeck jerlbeck at sysmocom.deOn 09/11/2013 08:22 PM, Holger Hans Peter Freyther wrote: > On Wed, Sep 11, 2013 at 10:46:58AM +0200, Jacob Erlbeck wrote: > >> When verification failed and the reply string was not updated, the >> message "Someone forgot to fill in the reply." was shown instead >> of the default "Value failed verification." message. > could you please comment on the patch? > >> This patch modifies the implementation to set the default message >> if and only if verification fails and the reply hasn't been changed. Having thought a little bit more about that, I'd rather modify ctrl_cmd_handle() to set cmd->reply at the end when it's still NULL and leave ctrl_cmd_exec() like it was: --- 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->replay has not been set.\n", ret); + 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; >> --- >> openbsc/src/libctrl/control_cmd.c | 4 +++- >> 1 file changed, 3 insertions(+), 1 deletion(-) >> >> diff --git a/openbsc/src/libctrl/control_cmd.c b/openbsc/src/libctrl/control_cmd.c >> index 3c4efc0..4d93c75 100644 >> --- a/openbsc/src/libctrl/control_cmd.c >> +++ b/openbsc/src/libctrl/control_cmd.c >> @@ -135,10 +135,12 @@ int ctrl_cmd_exec(vector vline, struct ctrl_cmd *command, vector node, void *dat >> goto out; >> } >> if (cmd_el->verify) { >> + const char *old_reply = command->reply; >> + >> if ((ret = cmd_el->verify(command, command->value, data))) { >> ret = CTRL_CMD_ERROR; >> /* If verify() set an appropriate error message, don't change it. */ >> - if (!command->reply) >> + if (command->reply == old_reply) >> command->reply = "Value failed verification."; >> goto out; >> } >> -- >> 1.7.9.5 >> >>