Change in libosmocore[master]: vty/command: add CMD_ATTR_LIB_COMMAND and install() API wrappers

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

laforge gerrit-no-reply at lists.osmocom.org
Tue Oct 6 11:46:27 UTC 2020


laforge has submitted this change. ( https://gerrit.osmocom.org/c/libosmocore/+/20440 )

Change subject: vty/command: add CMD_ATTR_LIB_COMMAND and install() API wrappers
......................................................................

vty/command: add CMD_ATTR_LIB_COMMAND and install() API wrappers

This new attribute would allow to distinguish commands provided
by libraries from commands registered by the application itself,
so vty_dump_element() would print proper description for the
library specific attributes.

All VTY commands defined by the libraries need to use the new API:

  - install_lib_element(), and
  - install_lib_element_ve,

instead of the old functions (respectively):

  - install_element(), and
  - install_element_ve().

See https://lists.osmocom.org/pipermail/openbsc/2020-October/013278.html.

Change-Id: I8baf31ace93c536421893c2aa4e3d9d298dcbcc6
Related: SYS#4937
---
M include/osmocom/vty/command.h
M src/vty/command.c
2 files changed, 21 insertions(+), 0 deletions(-)

Approvals:
  Jenkins Builder: Verified
  dexter: Looks good to me, but someone else must approve
  laforge: Looks good to me, approved



diff --git a/include/osmocom/vty/command.h b/include/osmocom/vty/command.h
index f558bb1..49f0bfe 100644
--- a/include/osmocom/vty/command.h
+++ b/include/osmocom/vty/command.h
@@ -139,6 +139,7 @@
 	CMD_ATTR_HIDDEN		= (1 << 1),
 	CMD_ATTR_IMMEDIATE	= (1 << 2),
 	CMD_ATTR_NODE_EXIT	= (1 << 3),
+	CMD_ATTR_LIB_COMMAND	= (1 << 4),
 };
 
 /*! Structure of a command element */
@@ -397,7 +398,9 @@
 void install_node(struct cmd_node *, int (*)(struct vty *));
 void install_default(int node_type) OSMO_DEPRECATED("Now happens implicitly with install_node()");
 void install_element(int node_type, struct cmd_element *);
+void install_lib_element(int node_type, struct cmd_element *);
 void install_element_ve(struct cmd_element *cmd);
+void install_lib_element_ve(struct cmd_element *cmd);
 void sort_node(void);
 
 void vty_install_default(int node_type) OSMO_DEPRECATED("Now happens implicitly with install_node()");
diff --git a/src/vty/command.c b/src/vty/command.c
index b472f6d..398c716 100644
--- a/src/vty/command.c
+++ b/src/vty/command.c
@@ -627,6 +627,7 @@
 	{ CMD_ATTR_HIDDEN,		"This command is hidden" },
 	{ CMD_ATTR_IMMEDIATE,		"This command applies immediately" },
 	{ CMD_ATTR_NODE_EXIT,		"This command applies on VTY node exit" },
+	/* CMD_ATTR_LIB_COMMAND is intentionally skipped */
 	{ 0, NULL }
 };
 
@@ -860,6 +861,16 @@
 	cmd->cmdsize = cmd_cmdsize(cmd->strvec);
 }
 
+/*! Install a library command into a node
+ *  \param[in] ntype Node Type
+ *  \param[in] cmd element to be installed
+ */
+void install_lib_element(int ntype, struct cmd_element *cmd)
+{
+	cmd->attr |= CMD_ATTR_LIB_COMMAND;
+	install_element(ntype, cmd);
+}
+
 /* Install a command into VIEW and ENABLE node */
 void install_element_ve(struct cmd_element *cmd)
 {
@@ -867,6 +878,13 @@
 	install_element(ENABLE_NODE, cmd);
 }
 
+/* Install a library command into VIEW and ENABLE node */
+void install_lib_element_ve(struct cmd_element *cmd)
+{
+	cmd->attr |= CMD_ATTR_LIB_COMMAND;
+	install_element_ve(cmd);
+}
+
 #ifdef VTY_CRYPT_PW
 static unsigned char itoa64[] =
     "./0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";

-- 
To view, visit https://gerrit.osmocom.org/c/libosmocore/+/20440
To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings

Gerrit-Project: libosmocore
Gerrit-Branch: master
Gerrit-Change-Id: I8baf31ace93c536421893c2aa4e3d9d298dcbcc6
Gerrit-Change-Number: 20440
Gerrit-PatchSet: 2
Gerrit-Owner: Vadim Yanitskiy <vyanitskiy at sysmocom.de>
Gerrit-Reviewer: Jenkins Builder
Gerrit-Reviewer: dexter <pmaier at sysmocom.de>
Gerrit-Reviewer: laforge <laforge at osmocom.org>
Gerrit-MessageType: merged
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osmocom.org/pipermail/gerrit-log/attachments/20201006/86370c4d/attachment.htm>


More information about the gerrit-log mailing list