summaryrefslogtreecommitdiffstats
path: root/src/ctrl
diff options
context:
space:
mode:
authorNeels Hofmeyr <nhofmeyr@sysmocom.de>2017-03-02 14:32:52 +0100
committerNeels Hofmeyr <nhofmeyr@sysmocom.de>2017-03-15 13:47:20 +0000
commit7c1ec8c8e763f9ab59f0de3ee25d2cd325d7480e (patch)
tree3cb4dca33a93b2318785f4355ac1732a14fc11bb /src/ctrl
parent6761c3f6268909d2bbb7c7e3dd85addc8004671e (diff)
ctrl_type_vals: explicitly terminate
Don't use CTRL_TYPE_UNKNOWN as value_string[] terminator, use an explicit, more obvious { 0, NULL } termination. Set an explicit string for CTRL_TYPE_UNKNOWN. No other value_string[]s to date have such a "hidden" terminator. BTW, a { 0, "string" } item is not a terminator, only { 0, NULL } is, so we can set a string for CTRL_TYPE_UNKNOWN == 0. Also, having a string value for CTRL_TYPE_UNKNOWN is not harmful because all code paths explicitly check for the CTRL_TYPE_*s that are valid. Adjust the test expectation. From the ctrl_type_vals enum, remove the = 0, because it is implicitly 0 anyway. One motivation to press this fixup: I am trying to add a script that checks whether all value_string[]s are terminated to our jenkins jobs, and to find that this one is terminated, it would need to interpret the CTRL_TYPE_UNKNOWN constant, which would make things far more complex. At this point, all of the value_string[]s have an explicit termination, and I would like to enforce this from now on -- for readable code and to not spend more time on the validator. The patch adding ctrl_type_vals (Icd4e96dd9f00876cb70b43cfcf42ab4f10311b28) was accepted by another reviewer before I could reconfirm my -1, so this is a fixup to enable the termination checking script patches. Related: I2bc93ab4781487e7685cfb63091a489cd126b1a8 (adds script to libosmocore) I7fe3678b524d602fc6aa14bc0ed06308df809a3e (uses in jenkins.sh) Icd4e96dd9f00876cb70b43cfcf42ab4f10311b28 (adds ctrl_type_vals) Change-Id: Ia99f37464c7b36b587da2cc78f52c82725f02cbc
Diffstat (limited to 'src/ctrl')
-rw-r--r--src/ctrl/control_cmd.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/src/ctrl/control_cmd.c b/src/ctrl/control_cmd.c
index cdec8efb..d706995f 100644
--- a/src/ctrl/control_cmd.c
+++ b/src/ctrl/control_cmd.c
@@ -40,13 +40,14 @@
extern vector ctrl_node_vec;
const struct value_string ctrl_type_vals[] = {
+ { CTRL_TYPE_UNKNOWN, "(unknown)" },
{ CTRL_TYPE_GET, "GET" },
{ CTRL_TYPE_SET, "SET" },
{ CTRL_TYPE_GET_REPLY, "GET_REPLY" },
{ CTRL_TYPE_SET_REPLY, "SET_REPLY" },
{ CTRL_TYPE_TRAP, "TRAP" },
{ CTRL_TYPE_ERROR, "ERROR" },
- { CTRL_TYPE_UNKNOWN, NULL }
+ { 0, NULL }
};
/* Functions from libosmocom */