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

2017-12-18 Thread Neels Hofmeyr
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 Hofmeyr 
Gerrit-Reviewer: Jenkins Builder
Gerrit-Reviewer: Max 
Gerrit-Reviewer: Neels Hofmeyr 


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

2017-12-17 Thread Neels Hofmeyr
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

2017-12-15 Thread Neels Hofmeyr

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);
+