[VTY] Introduce "end" command that works from any level in config
Using "end" you can always return to the "enable" level, and from there the "show" commands are available. So no more need for exit/exit/exit/exit/disable.
This commit is contained in:
parent
93e90207f9
commit
54f7424b78
|
@ -15,5 +15,6 @@ struct buffer *vty_argv_to_buffer(int argc, const char *argv[], int base);
|
|||
extern struct cmd_element cfg_description_cmd;
|
||||
extern struct cmd_element cfg_no_description_cmd;
|
||||
extern struct cmd_element ournode_exit_cmd;
|
||||
extern struct cmd_element ournode_end_cmd;
|
||||
|
||||
#endif
|
||||
|
|
|
@ -159,6 +159,7 @@ int gbproxy_vty_init(void)
|
|||
install_node(&gbproxy_node, config_write_gbproxy);
|
||||
install_default(GBPROXY_NODE);
|
||||
install_element(GBPROXY_NODE, &ournode_exit_cmd);
|
||||
install_element(GBPROXY_NODE, &ournode_end_cmd);
|
||||
install_element(GBPROXY_NODE, &cfg_nsip_bss_local_ip_cmd);
|
||||
install_element(GBPROXY_NODE, &cfg_nsip_bss_local_port_cmd);
|
||||
install_element(GBPROXY_NODE, &cfg_nsip_sgsn_ip_cmd);
|
||||
|
|
|
@ -283,6 +283,7 @@ int gprs_ns_vty_init(struct gprs_ns_inst *nsi)
|
|||
install_node(&ns_node, config_write_ns);
|
||||
install_default(NS_NODE);
|
||||
install_element(NS_NODE, &ournode_exit_cmd);
|
||||
install_element(NS_NODE, &ournode_end_cmd);
|
||||
install_element(NS_NODE, &cfg_nse_nsvci_cmd);
|
||||
install_element(NS_NODE, &cfg_nse_remoteip_cmd);
|
||||
install_element(NS_NODE, &cfg_nse_remoteport_cmd);
|
||||
|
|
|
@ -127,6 +127,7 @@ int sgsn_vty_init(void)
|
|||
install_node(&sgsn_node, config_write_sgsn);
|
||||
install_default(SGSN_NODE);
|
||||
install_element(SGSN_NODE, &ournode_exit_cmd);
|
||||
install_element(SGSN_NODE, &ournode_end_cmd);
|
||||
install_element(SGSN_NODE, &cfg_nsip_local_ip_cmd);
|
||||
install_element(SGSN_NODE, &cfg_nsip_local_port_cmd);
|
||||
|
||||
|
|
|
@ -245,6 +245,7 @@ int mgcp_vty_init(void)
|
|||
install_node(&mgcp_node, config_write_mgcp);
|
||||
install_default(MGCP_NODE);
|
||||
install_element(MGCP_NODE, &ournode_exit_cmd);
|
||||
install_element(MGCP_NODE, &ournode_end_cmd);
|
||||
install_element(MGCP_NODE, &cfg_mgcp_local_ip_cmd);
|
||||
install_element(MGCP_NODE, &cfg_mgcp_bts_ip_cmd);
|
||||
install_element(MGCP_NODE, &cfg_mgcp_bind_ip_cmd);
|
||||
|
|
|
@ -1955,6 +1955,7 @@ int bsc_vty_init(struct gsm_network *net)
|
|||
install_node(&net_node, config_write_net);
|
||||
install_default(GSMNET_NODE);
|
||||
install_element(GSMNET_NODE, &ournode_exit_cmd);
|
||||
install_element(GSMNET_NODE, &ournode_end_cmd);
|
||||
install_element(GSMNET_NODE, &cfg_net_ncc_cmd);
|
||||
install_element(GSMNET_NODE, &cfg_net_mnc_cmd);
|
||||
install_element(GSMNET_NODE, &cfg_net_name_short_cmd);
|
||||
|
@ -1988,6 +1989,7 @@ int bsc_vty_init(struct gsm_network *net)
|
|||
install_node(&bts_node, config_write_bts);
|
||||
install_default(BTS_NODE);
|
||||
install_element(BTS_NODE, &ournode_exit_cmd);
|
||||
install_element(BTS_NODE, &ournode_end_cmd);
|
||||
install_element(BTS_NODE, &cfg_bts_type_cmd);
|
||||
install_element(BTS_NODE, &cfg_description_cmd);
|
||||
install_element(BTS_NODE, &cfg_no_description_cmd);
|
||||
|
@ -2026,6 +2028,7 @@ int bsc_vty_init(struct gsm_network *net)
|
|||
install_node(&trx_node, dummy_config_write);
|
||||
install_default(TRX_NODE);
|
||||
install_element(TRX_NODE, &ournode_exit_cmd);
|
||||
install_element(TRX_NODE, &ournode_end_cmd);
|
||||
install_element(TRX_NODE, &cfg_trx_arfcn_cmd);
|
||||
install_element(TRX_NODE, &cfg_description_cmd);
|
||||
install_element(TRX_NODE, &cfg_no_description_cmd);
|
||||
|
@ -2039,6 +2042,7 @@ int bsc_vty_init(struct gsm_network *net)
|
|||
install_node(&ts_node, dummy_config_write);
|
||||
install_default(TS_NODE);
|
||||
install_element(TS_NODE, &ournode_exit_cmd);
|
||||
install_element(TS_NODE, &ournode_end_cmd);
|
||||
install_element(TS_NODE, &cfg_ts_pchan_cmd);
|
||||
install_element(TS_NODE, &cfg_ts_e1_subslot_cmd);
|
||||
|
||||
|
|
|
@ -120,6 +120,36 @@ gDEFUN(ournode_exit,
|
|||
return CMD_SUCCESS;
|
||||
}
|
||||
|
||||
/* End of configuration. */
|
||||
gDEFUN(ournode_end,
|
||||
ournode_end_cmd, "end", "End current mode and change to enable mode.")
|
||||
{
|
||||
switch (vty->node) {
|
||||
case VIEW_NODE:
|
||||
case ENABLE_NODE:
|
||||
/* Nothing to do. */
|
||||
break;
|
||||
case CONFIG_NODE:
|
||||
case GSMNET_NODE:
|
||||
case BTS_NODE:
|
||||
case TRX_NODE:
|
||||
case TS_NODE:
|
||||
case MGCP_NODE:
|
||||
case GBPROXY_NODE:
|
||||
case SGSN_NODE:
|
||||
case NS_NODE:
|
||||
case VTY_NODE:
|
||||
vty_config_unlock(vty);
|
||||
vty->node = ENABLE_NODE;
|
||||
vty->index = NULL;
|
||||
vty->index_sub = NULL;
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
return CMD_SUCCESS;
|
||||
}
|
||||
|
||||
DEFUN(enable_logging,
|
||||
enable_logging_cmd,
|
||||
"logging enable",
|
||||
|
|
Loading…
Reference in New Issue