[PATCH] libosmocore[master]: ctrl: separate handling of GET_REPLY, SET_REPLY and TRAP
Hello Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/5439 to look at the new patch set (#5). 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(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/39/5439/5 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, " ", ); - val = strtok_r(NULL, "", ); - 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, " ", ); \ + val = strtok_r(NULL, "", ); \ + 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, "", ); if (!var) { -- To view, visit https://gerrit.osmocom.org/5439 To unsubscribe, visit https://gerrit.osmocom.org/settings Gerrit-MessageType: newpatchset Gerrit-Change-Id: Ic25a251502499aeda4e2952ec4190a1fa0bebb01 Gerrit-PatchSet: 5 Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Owner: Neels HofmeyrGerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Max Gerrit-Reviewer: Neels Hofmeyr
[PATCH] libosmocore[master]: ctrl: separate handling of GET_REPLY, SET_REPLY and TRAP
Hello Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/5439 to look at the new patch set (#4). 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, 52 insertions(+), 8 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/39/5439/4 diff --git a/src/ctrl/control_cmd.c b/src/ctrl/control_cmd.c index f32a200..31199bf 100644 --- a/src/ctrl/control_cmd.c +++ b/src/ctrl/control_cmd.c @@ -411,20 +411,18 @@ 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, " ", ); val = strtok_r(NULL, "", ); - if (!var || !val) { + if (!var) { cmd->type = CTRL_TYPE_ERROR; - cmd->reply = "Trap/Reply incomplete"; - LOGP(DLCTRL, LOGL_NOTICE, "Trap/Reply incomplete\n"); + cmd->reply = "GET REPLY incomplete"; + LOGP(DLCTRL, LOGL_NOTICE, "GET 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", + cmd->reply = "GET REPLY variable contains invalid characters"; + LOGP(DLCTRL, LOGL_NOTICE, "GET REPLY variable contains invalid characters: \"%s\"\n", osmo_escape_str(var, -1)); goto err; } @@ -432,7 +430,53 @@ 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, + LOGP(DLCTRL, LOGL_DEBUG, "Command: GET REPLY %s: %s\n", cmd->variable, +osmo_escape_str(cmd->reply, -1)); + break; + case CTRL_TYPE_SET_REPLY: + var = strtok_r(NULL, " ", ); + val = strtok_r(NULL, "", ); + if (!var) { + cmd->type = CTRL_TYPE_ERROR; + cmd->reply = "SET REPLY incomplete"; + LOGP(DLCTRL, LOGL_NOTICE, "GET REPLY incomplete\n"); + goto err; + } + if (!osmo_separated_identifiers_valid(var, ".")) { + cmd->type = CTRL_TYPE_ERROR; + cmd->reply = "SET REPLY variable contains invalid characters"; + LOGP(DLCTRL, LOGL_NOTICE, "SET 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: SET REPLY %s: %s\n", cmd->variable, +osmo_escape_str(cmd->reply, -1)); + break; + case CTRL_TYPE_TRAP: + var = strtok_r(NULL, " ", ); + val = strtok_r(NULL, "", ); + if (!var || !val) { + cmd->type = CTRL_TYPE_ERROR; + cmd->reply = "TRAP incomplete"; + LOGP(DLCTRL, LOGL_NOTICE, "TRAP incomplete\n"); + goto err; + } + if (!osmo_separated_identifiers_valid(var, ".")) { + cmd->type = CTRL_TYPE_ERROR; + cmd->reply = "TRAP variable contains invalid characters"; + LOGP(DLCTRL, LOGL_NOTICE, "TRAP variable contains invalid characters: \"%s\"\n", +osmo_escape_str(var, -1)); + goto
[PATCH] libosmocore[master]: ctrl: separate handling of GET_REPLY, SET_REPLY and TRAP
Review at https://gerrit.osmocom.org/5439 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, 52 insertions(+), 8 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/39/5439/1 diff --git a/src/ctrl/control_cmd.c b/src/ctrl/control_cmd.c index f32a200..31199bf 100644 --- a/src/ctrl/control_cmd.c +++ b/src/ctrl/control_cmd.c @@ -411,20 +411,18 @@ 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, " ", ); val = strtok_r(NULL, "", ); - if (!var || !val) { + if (!var) { cmd->type = CTRL_TYPE_ERROR; - cmd->reply = "Trap/Reply incomplete"; - LOGP(DLCTRL, LOGL_NOTICE, "Trap/Reply incomplete\n"); + cmd->reply = "GET REPLY incomplete"; + LOGP(DLCTRL, LOGL_NOTICE, "GET 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", + cmd->reply = "GET REPLY variable contains invalid characters"; + LOGP(DLCTRL, LOGL_NOTICE, "GET REPLY variable contains invalid characters: \"%s\"\n", osmo_escape_str(var, -1)); goto err; } @@ -432,7 +430,53 @@ 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, + LOGP(DLCTRL, LOGL_DEBUG, "Command: GET REPLY %s: %s\n", cmd->variable, +osmo_escape_str(cmd->reply, -1)); + break; + case CTRL_TYPE_SET_REPLY: + var = strtok_r(NULL, " ", ); + val = strtok_r(NULL, "", ); + if (!var) { + cmd->type = CTRL_TYPE_ERROR; + cmd->reply = "SET REPLY incomplete"; + LOGP(DLCTRL, LOGL_NOTICE, "GET REPLY incomplete\n"); + goto err; + } + if (!osmo_separated_identifiers_valid(var, ".")) { + cmd->type = CTRL_TYPE_ERROR; + cmd->reply = "SET REPLY variable contains invalid characters"; + LOGP(DLCTRL, LOGL_NOTICE, "SET 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: SET REPLY %s: %s\n", cmd->variable, +osmo_escape_str(cmd->reply, -1)); + break; + case CTRL_TYPE_TRAP: + var = strtok_r(NULL, " ", ); + val = strtok_r(NULL, "", ); + if (!var || !val) { + cmd->type = CTRL_TYPE_ERROR; + cmd->reply = "TRAP incomplete"; + LOGP(DLCTRL, LOGL_NOTICE, "TRAP incomplete\n"); + goto err; + } + if (!osmo_separated_identifiers_valid(var, ".")) { + cmd->type = CTRL_TYPE_ERROR; + cmd->reply = "TRAP variable contains invalid characters"; + LOGP(DLCTRL, LOGL_NOTICE, "TRAP variable contains invalid characters: \"%s\"\n", +osmo_escape_str(var, -1)); + goto err; + } + cmd->variable = talloc_strdup(cmd, var); +