diff options
-rw-r--r-- | include/osmocom/vty/command.h | 5 | ||||
-rw-r--r-- | src/ctrl/control_vty.c | 1 | ||||
-rw-r--r-- | src/gb/gprs_bssgp_vty.c | 1 | ||||
-rw-r--r-- | src/gb/gprs_ns_vty.c | 1 | ||||
-rw-r--r-- | src/vty/command.c | 42 | ||||
-rw-r--r-- | src/vty/logging_vty.c | 1 | ||||
-rw-r--r-- | src/vty/stats_vty.c | 1 | ||||
-rw-r--r-- | src/vty/vty.c | 1 | ||||
-rw-r--r-- | tests/vty/vty_test.c | 3 |
9 files changed, 31 insertions, 25 deletions
diff --git a/include/osmocom/vty/command.h b/include/osmocom/vty/command.h index 58f248fe..8fbdb7b7 100644 --- a/include/osmocom/vty/command.h +++ b/include/osmocom/vty/command.h @@ -27,6 +27,8 @@ #include <sys/types.h> #include "vector.h" +#include <osmocom/core/defs.h> + /*! \defgroup command VTY Command * @{ * \file command.h */ @@ -363,9 +365,6 @@ void install_element(int node_type, struct cmd_element *); void install_element_ve(struct cmd_element *cmd); void sort_node(void); -/* This is similar to install_default() but it also creates - * 'exit' and 'end' commands. - */ void vty_install_default(int node_type); /* Concatenates argv[shift] through argv[argc-1] into a single NUL-terminated diff --git a/src/ctrl/control_vty.c b/src/ctrl/control_vty.c index 97f42de5..a968bc01 100644 --- a/src/ctrl/control_vty.c +++ b/src/ctrl/control_vty.c @@ -82,7 +82,6 @@ int ctrl_vty_init(void *ctx) ctrl_vty_ctx = ctx; install_element(CONFIG_NODE, &cfg_ctrl_cmd); install_node(&ctrl_node, config_write_ctrl); - vty_install_default(L_CTRL_NODE); install_element(L_CTRL_NODE, &cfg_ctrl_bind_addr_cmd); return 0; diff --git a/src/gb/gprs_bssgp_vty.c b/src/gb/gprs_bssgp_vty.c index dc786a14..f7878469 100644 --- a/src/gb/gprs_bssgp_vty.c +++ b/src/gb/gprs_bssgp_vty.c @@ -211,7 +211,6 @@ int bssgp_vty_init(void) install_element(CONFIG_NODE, &cfg_bssgp_cmd); install_node(&bssgp_node, config_write_bssgp); - vty_install_default(L_BSSGP_NODE); return 0; } diff --git a/src/gb/gprs_ns_vty.c b/src/gb/gprs_ns_vty.c index 4bd50970..f94d9c2c 100644 --- a/src/gb/gprs_ns_vty.c +++ b/src/gb/gprs_ns_vty.c @@ -594,7 +594,6 @@ int gprs_ns_vty_init(struct gprs_ns_inst *nsi) install_element(CONFIG_NODE, &cfg_ns_cmd); install_node(&ns_node, config_write_ns); - vty_install_default(L_NS_NODE); install_element(L_NS_NODE, &cfg_nse_nsvci_cmd); install_element(L_NS_NODE, &cfg_nse_remoteip_cmd); install_element(L_NS_NODE, &cfg_nse_remoteport_cmd); diff --git a/src/vty/command.c b/src/vty/command.c index 8ad2e975..21b26b4e 100644 --- a/src/vty/command.c +++ b/src/vty/command.c @@ -149,8 +149,10 @@ static const char *node_name_from_prompt(const char *prompt, char *name_buf, siz return name_buf; } -/*! Install top node of command vector. */ -void install_node(struct cmd_node *node, int (*func) (struct vty *)) +static void install_basic_node_commands(int node); + +/*! Install top node of command vector, without adding basic node commands. */ +static void install_node_bare(struct cmd_node *node, int (*func) (struct vty *)) { vector_set_index(cmdvec, node->node, node); node->func = func; @@ -159,6 +161,13 @@ void install_node(struct cmd_node *node, int (*func) (struct vty *)) node_name_from_prompt(node->prompt, node->name, sizeof(node->name)); } +/*! Install top node of command vector. */ +void install_node(struct cmd_node *node, int (*func) (struct vty *)) +{ + install_node_bare(node, func); + install_basic_node_commands(node->node); +} + /* Compare two command's string. Used in sort_node (). */ static int cmp_node(const void *p, const void *q) { @@ -3599,8 +3608,23 @@ void host_config_set(const char *filename) host.config = talloc_strdup(tall_vty_cmd_ctx, filename); } +/*! Deprecated, now happens implicitly when calling install_node(). + * Users of the API may still attempt to call this function, hence + * leave it here as a no-op. */ void install_default(int node) { +} + +/*! Deprecated, now happens implicitly when calling install_node(). + * Users of the API may still attempt to call this function, hence + * leave it here as a no-op. */ +void vty_install_default(int node) +{ +} + +/*! Install common commands like 'exit' and 'list'. */ +static void install_basic_node_commands(int node) +{ install_element(node, &config_help_cmd); install_element(node, &config_list_cmd); @@ -3609,11 +3633,6 @@ void install_default(int node) install_element(node, &config_write_memory_cmd); install_element(node, &config_write_cmd); install_element(node, &show_running_config_cmd); -} - -void vty_install_default(int node) -{ - install_default(node); install_element(node, &config_exit_cmd); @@ -3681,10 +3700,10 @@ void cmd_init(int terminal) host.motdfile = NULL; /* Install top nodes. */ - install_node(&view_node, NULL); + install_node_bare(&view_node, NULL); install_node(&enable_node, NULL); - install_node(&auth_node, NULL); - install_node(&auth_enable_node, NULL); + install_node_bare(&auth_node, NULL); + install_node_bare(&auth_enable_node, NULL); install_node(&config_node, config_write_host); /* Each node's basic commands. */ @@ -3701,7 +3720,6 @@ void cmd_init(int terminal) } if (terminal) { - vty_install_default(ENABLE_NODE); install_element(ENABLE_NODE, &config_disable_cmd); install_element(ENABLE_NODE, &config_terminal_cmd); install_element (ENABLE_NODE, ©_runningconfig_startupconfig_cmd); @@ -3714,8 +3732,6 @@ void cmd_init(int terminal) install_element(ENABLE_NODE, &config_terminal_length_cmd); install_element(ENABLE_NODE, &config_terminal_no_length_cmd); install_element(ENABLE_NODE, &echo_cmd); - - vty_install_default(CONFIG_NODE); } install_element(CONFIG_NODE, &hostname_cmd); diff --git a/src/vty/logging_vty.c b/src/vty/logging_vty.c index 01480b10..0ab76861 100644 --- a/src/vty/logging_vty.c +++ b/src/vty/logging_vty.c @@ -776,7 +776,6 @@ void logging_vty_add_cmds() install_element_ve(&show_alarms_cmd); install_node(&cfg_log_node, config_write_log); - vty_install_default(CFG_LOG_NODE); install_element(CFG_LOG_NODE, &logging_fltr_all_cmd); install_element(CFG_LOG_NODE, &logging_use_clr_cmd); install_element(CFG_LOG_NODE, &logging_prnt_timestamp_cmd); diff --git a/src/vty/stats_vty.c b/src/vty/stats_vty.c index 57cdd308..a4c73fa0 100644 --- a/src/vty/stats_vty.c +++ b/src/vty/stats_vty.c @@ -594,7 +594,6 @@ void osmo_stats_vty_add_cmds() install_element(CONFIG_NODE, &cfg_stats_interval_cmd); install_node(&cfg_stats_node, config_write_stats); - vty_install_default(CFG_STATS_NODE); install_element(CFG_STATS_NODE, &cfg_stats_reporter_local_ip_cmd); install_element(CFG_STATS_NODE, &cfg_no_stats_reporter_local_ip_cmd); diff --git a/src/vty/vty.c b/src/vty/vty.c index 3d9c0d64..aef73b3a 100644 --- a/src/vty/vty.c +++ b/src/vty/vty.c @@ -1798,7 +1798,6 @@ void vty_init(struct vty_app_info *app_info) install_element(ENABLE_NODE, &terminal_monitor_cmd); install_element(ENABLE_NODE, &terminal_no_monitor_cmd); - vty_install_default(VTY_NODE); install_element(VTY_NODE, &vty_login_cmd); install_element(VTY_NODE, &no_vty_login_cmd); install_element(VTY_NODE, &vty_bind_cmd); diff --git a/tests/vty/vty_test.c b/tests/vty/vty_test.c index fe50e4c2..2542baf3 100644 --- a/tests/vty/vty_test.c +++ b/tests/vty/vty_test.c @@ -386,17 +386,14 @@ void test_vty_add_cmds() { install_element(CONFIG_NODE, &cfg_level1_cmd); install_node(&level1_node, NULL); - vty_install_default(LEVEL1_NODE); install_element(LEVEL1_NODE, &cfg_level1_child_cmd); install_element(LEVEL1_NODE, &cfg_level2_cmd); install_node(&level2_node, NULL); - vty_install_default(LEVEL2_NODE); install_element(LEVEL2_NODE, &cfg_level2_child_cmd); install_element(LEVEL2_NODE, &cfg_level3_cmd); install_node(&level3_node, NULL); - vty_install_default(LEVEL3_NODE); install_element(LEVEL3_NODE, &cfg_level3_child_cmd); } |