[PATCH] libosmocore[master]: ctrl: separate handling of GET_REPLY, SET_REPLY and TRAP

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/.

Neels Hofmeyr gerrit-no-reply at lists.osmocom.org
Mon Dec 18 03:39:22 UTC 2017


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, " ", &saveptr);
 			val = strtok_r(NULL, "", &saveptr);
-			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, " ", &saveptr);
+			val = strtok_r(NULL, "", &saveptr);
+			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, " ", &saveptr);
+			val = strtok_r(NULL, "", &saveptr);
+			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);
+			cmd->reply = talloc_strdup(cmd, val);
+			if (!cmd->variable || !cmd->reply)
+				goto oom;
+			LOGP(DLCTRL, LOGL_DEBUG, "Command: TRAP %s: \"%s\"\n", cmd->variable,
 			     osmo_escape_str(cmd->reply, -1));
 			break;
 		case CTRL_TYPE_ERROR:

-- 
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: 4
Gerrit-Project: libosmocore
Gerrit-Branch: master
Gerrit-Owner: Neels Hofmeyr <nhofmeyr at sysmocom.de>
Gerrit-Reviewer: Jenkins Builder



More information about the gerrit-log mailing list