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.orgReview at https://gerrit.osmocom.org/1539 vty: OSMO_ASSERT() if two identical commands are installed When the caller installs two identical commands at a given VTY node, the result is that neither of the two commands can ever be executed: The VTY would always complain about "Ambiguous command.". Let's fail fast at program start when two identical commands are intalled. Change-Id: I85ff4640ebb3d8b75a6a9ab5d2f668edb5b7189e --- M src/vty/command.c 1 file changed, 19 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/39/1539/1 diff --git a/src/vty/command.c b/src/vty/command.c index 9d8bf31..587bd62 100644 --- a/src/vty/command.c +++ b/src/vty/command.c @@ -594,6 +594,22 @@ return 0; } +/* \brief Check if a command with given string exists at given node */ +static int check_element_exists(struct cmd_node *cnode, const char *cmdstring) +{ + int i; + + for (i = 0; i < vector_active(cnode->cmd_vector); ++i) { + struct cmd_element *elem; + elem = vector_slot(cnode->cmd_vector, i); + if (!elem->string) + continue; + if (!strcmp(elem->string, cmdstring)) + return 1; + } + return 0; +} + /*! \brief Install a command into a node * \param[in] ntype Node Type * \param[cmd] element to be installed @@ -605,6 +621,9 @@ cnode = vector_slot(cmdvec, ntype); OSMO_ASSERT(cnode); + /* ensure no _identical_ command has been registered at this + * node so far */ + OSMO_ASSERT(!check_element_exists(cnode, cmd->string)); vector_set(cnode->cmd_vector, cmd); -- To view, visit https://gerrit.osmocom.org/1539 To unsubscribe, visit https://gerrit.osmocom.org/settings Gerrit-MessageType: newchange Gerrit-Change-Id: I85ff4640ebb3d8b75a6a9ab5d2f668edb5b7189e Gerrit-PatchSet: 1 Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Owner: Harald Welte <laforge at gnumonks.org>