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/gerrit-log@lists.osmocom.org/.
Harald Welte gerrit-no-reply at lists.osmocom.orgHarald Welte has submitted this change and it was merged. Change subject: ctrl: separate handling of GET_REPLY, SET_REPLY and TRAP ...................................................................... ctrl: separate handling of GET_REPLY, SET_REPLY and TRAP So far, error reporting just says "Trap/Reply", more accurately report 'GET REPLY', 'SET REPLY' and 'TRAP' as appropriate. Change-Id: Ic25a251502499aeda4e2952ec4190a1fa0bebb01 --- M src/ctrl/control_cmd.c 1 file changed, 28 insertions(+), 25 deletions(-) Approvals: Harald Welte: Looks good to me, approved Jenkins Builder: Verified diff --git a/src/ctrl/control_cmd.c b/src/ctrl/control_cmd.c index f32a200..c747e84 100644 --- a/src/ctrl/control_cmd.c +++ b/src/ctrl/control_cmd.c @@ -410,31 +410,34 @@ LOGP(DLCTRL, LOGL_DEBUG, "Command: SET %s = \"%s\"\n", cmd->variable, osmo_escape_str(cmd->value, -1)); break; - case CTRL_TYPE_GET_REPLY: - case CTRL_TYPE_SET_REPLY: - case CTRL_TYPE_TRAP: - var = strtok_r(NULL, " ", &saveptr); - val = strtok_r(NULL, "", &saveptr); - if (!var || !val) { - cmd->type = CTRL_TYPE_ERROR; - cmd->reply = "Trap/Reply incomplete"; - LOGP(DLCTRL, LOGL_NOTICE, "Trap/Reply incomplete\n"); - goto err; - } - if (!osmo_separated_identifiers_valid(var, ".")) { - cmd->type = CTRL_TYPE_ERROR; - cmd->reply = "Trap/Reply variable contains invalid characters"; - LOGP(DLCTRL, LOGL_NOTICE, "Trap/Reply variable contains invalid characters: \"%s\"\n", - osmo_escape_str(var, -1)); - goto err; - } - cmd->variable = talloc_strdup(cmd, var); - cmd->reply = talloc_strdup(cmd, val); - if (!cmd->variable || !cmd->reply) - goto oom; - LOGP(DLCTRL, LOGL_DEBUG, "Command: TRAP/REPLY %s: \"%s\"\n", cmd->variable, - osmo_escape_str(cmd->reply, -1)); - break; +#define REPLY_CASE(TYPE, NAME) \ + case TYPE: \ + var = strtok_r(NULL, " ", &saveptr); \ + val = strtok_r(NULL, "", &saveptr); \ + if (!var) { \ + cmd->type = CTRL_TYPE_ERROR; \ + cmd->reply = NAME " incomplete"; \ + LOGP(DLCTRL, LOGL_NOTICE, NAME " incomplete\n"); \ + goto err; \ + } \ + if (!osmo_separated_identifiers_valid(var, ".")) { \ + cmd->type = CTRL_TYPE_ERROR; \ + cmd->reply = NAME " variable contains invalid characters"; \ + LOGP(DLCTRL, LOGL_NOTICE, NAME " variable contains invalid characters: \"%s\"\n", \ + osmo_escape_str(var, -1)); \ + goto err; \ + } \ + cmd->variable = talloc_strdup(cmd, var); \ + cmd->reply = talloc_strdup(cmd, val); \ + if (!cmd->variable || !cmd->reply) \ + goto oom; \ + LOGP(DLCTRL, LOGL_DEBUG, "Command: " NAME " %s: %s\n", cmd->variable, \ + osmo_escape_str(cmd->reply, -1)); \ + break + REPLY_CASE(CTRL_TYPE_GET_REPLY, "GET REPLY"); + REPLY_CASE(CTRL_TYPE_SET_REPLY, "SET REPLY"); + REPLY_CASE(CTRL_TYPE_TRAP, "TRAP"); +#undef REPLY_CASE case CTRL_TYPE_ERROR: var = strtok_r(NULL, "", &saveptr); if (!var) { -- To view, visit https://gerrit.osmocom.org/5439 To unsubscribe, visit https://gerrit.osmocom.org/settings Gerrit-MessageType: merged Gerrit-Change-Id: Ic25a251502499aeda4e2952ec4190a1fa0bebb01 Gerrit-PatchSet: 7 Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Owner: Neels Hofmeyr <nhofmeyr at sysmocom.de> Gerrit-Reviewer: Harald Welte <laforge at gnumonks.org> Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Max <msuraev at sysmocom.de> Gerrit-Reviewer: Neels Hofmeyr <nhofmeyr at sysmocom.de>