diff options
author | Vadim Yanitskiy <vyanitskiy@sysmocom.de> | 2020-11-17 16:22:44 +0700 |
---|---|---|
committer | Vadim Yanitskiy <vyanitskiy@sysmocom.de> | 2020-11-17 16:23:11 +0700 |
commit | 7031ac1dd23592470338ff0fcf7cb52617492e39 (patch) | |
tree | e79cc208b41cdecab4c83e859a8691ea9777582e /src/vty/command.c | |
parent | aa718462bf6ff3e741cefd144775476c837dc0af (diff) |
vty/command: add 'hidden only' VTY reference generation mode
Change-Id: I511ce26350cd04bb0f66d130b5286cab84f16df2
Related: SYS#4910
Diffstat (limited to 'src/vty/command.c')
-rw-r--r-- | src/vty/command.c | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/src/vty/command.c b/src/vty/command.c index c233aa6a..b38be34e 100644 --- a/src/vty/command.c +++ b/src/vty/command.c @@ -897,12 +897,14 @@ static int print_func_stream(void *data, const char *format, ...) const struct value_string vty_ref_gen_mode_names[] = { { VTY_REF_GEN_MODE_DEFAULT, "default" }, { VTY_REF_GEN_MODE_EXPERT, "expert" }, + { VTY_REF_GEN_MODE_HIDDEN, "hidden" }, { 0, NULL } }; const struct value_string vty_ref_gen_mode_desc[] = { { VTY_REF_GEN_MODE_DEFAULT, "all commands except deprecated and hidden" }, { VTY_REF_GEN_MODE_EXPERT, "all commands including hidden, excluding deprecated" }, + { VTY_REF_GEN_MODE_HIDDEN, "hidden commands only" }, { 0, NULL } }; @@ -914,12 +916,18 @@ const struct value_string vty_ref_gen_mode_desc[] = { int vty_dump_xml_ref_mode(FILE *stream, enum vty_ref_gen_mode mode) { unsigned char gflag_mask; + bool match = false; switch (mode) { case VTY_REF_GEN_MODE_EXPERT: /* All commands except deprecated */ gflag_mask = CMD_ATTR_DEPRECATED; break; + case VTY_REF_GEN_MODE_HIDDEN: + /* Only hidden commands */ + gflag_mask = CMD_ATTR_HIDDEN; + match = true; + break; case VTY_REF_GEN_MODE_DEFAULT: default: /* All commands except deprecated and hidden */ @@ -927,7 +935,7 @@ int vty_dump_xml_ref_mode(FILE *stream, enum vty_ref_gen_mode mode) break; } - return vty_dump_nodes(print_func_stream, stream, "\n", gflag_mask, false); + return vty_dump_nodes(print_func_stream, stream, "\n", gflag_mask, match); } /*! Print the XML reference of all VTY nodes to the given stream. |