[MERGED] 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/.

Harald Welte gerrit-no-reply at lists.osmocom.org
Wed Dec 20 15:50:36 UTC 2017


Harald 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>



More information about the gerrit-log mailing list