From 570ce24debddbba8efca8567b70a805f80d18ecc Mon Sep 17 00:00:00 2001 From: Harald Welte Date: Fri, 17 Aug 2012 13:16:10 +0200 Subject: VTY: improve VTY prompt and make sure exit/end works everywhere Some nodes below 'config' didn't have ournode_exit / ournode_end, and thus were not able to properly perform this function. exit should always only go back one level, while end drops us back to ENABLE_NODE. The prompt now represents the nesting level, and there's one consistent space after the final prompt character (typically #). --- openbsc/src/gprs/gb_proxy_vty.c | 2 +- openbsc/src/gprs/sgsn_vty.c | 2 +- openbsc/src/libbsc/bsc_vty.c | 8 ++++---- openbsc/src/libmgcp/mgcp_vty.c | 4 ++-- openbsc/src/libmsc/vty_interface_layer3.c | 4 +++- openbsc/src/osmo-bsc/osmo_bsc_vty.c | 2 +- openbsc/src/osmo-bsc_nat/bsc_nat_vty.c | 8 +++++--- 7 files changed, 17 insertions(+), 13 deletions(-) diff --git a/openbsc/src/gprs/gb_proxy_vty.c b/openbsc/src/gprs/gb_proxy_vty.c index 574f45f78..bfa1f3bd1 100644 --- a/openbsc/src/gprs/gb_proxy_vty.c +++ b/openbsc/src/gprs/gb_proxy_vty.c @@ -40,7 +40,7 @@ static struct gbproxy_config *g_cfg = NULL; */ static struct cmd_node gbproxy_node = { GBPROXY_NODE, - "%s(gbproxy)#", + "%s(config-gbproxy)# ", 1, }; diff --git a/openbsc/src/gprs/sgsn_vty.c b/openbsc/src/gprs/sgsn_vty.c index f4a8083a3..1fc0b4110 100644 --- a/openbsc/src/gprs/sgsn_vty.c +++ b/openbsc/src/gprs/sgsn_vty.c @@ -106,7 +106,7 @@ static char *gprs_pdpaddr2str(uint8_t *pdpa, uint8_t len) static struct cmd_node sgsn_node = { SGSN_NODE, - "%s(sgsn)#", + "%s(config-sgsn)# ", 1, }; diff --git a/openbsc/src/libbsc/bsc_vty.c b/openbsc/src/libbsc/bsc_vty.c index d7cdee657..b91304d82 100644 --- a/openbsc/src/libbsc/bsc_vty.c +++ b/openbsc/src/libbsc/bsc_vty.c @@ -97,25 +97,25 @@ static const struct value_string bts_neigh_mode_strs[] = { struct cmd_node net_node = { GSMNET_NODE, - "%s(network)#", + "%s(config-net)# ", 1, }; struct cmd_node bts_node = { BTS_NODE, - "%s(bts)#", + "%s(config-net-bts)# ", 1, }; struct cmd_node trx_node = { TRX_NODE, - "%s(trx)#", + "%s(config-net-bts-trx)# ", 1, }; struct cmd_node ts_node = { TS_NODE, - "%s(ts)#", + "%s(config-net-bts-trx-ts)# ", 1, }; diff --git a/openbsc/src/libmgcp/mgcp_vty.c b/openbsc/src/libmgcp/mgcp_vty.c index 016ad1493..314faa809 100644 --- a/openbsc/src/libmgcp/mgcp_vty.c +++ b/openbsc/src/libmgcp/mgcp_vty.c @@ -51,13 +51,13 @@ static struct mgcp_trunk_config *find_trunk(struct mgcp_config *cfg, int nr) */ struct cmd_node mgcp_node = { MGCP_NODE, - "%s(mgcp)#", + "%s(config-mgcp)# ", 1, }; struct cmd_node trunk_node = { TRUNK_NODE, - "%s(trunk)#", + "%s(config-mgcp-trunk)# ", 1, }; diff --git a/openbsc/src/libmsc/vty_interface_layer3.c b/openbsc/src/libmsc/vty_interface_layer3.c index 47a141d72..720275631 100644 --- a/openbsc/src/libmsc/vty_interface_layer3.c +++ b/openbsc/src/libmsc/vty_interface_layer3.c @@ -777,7 +777,7 @@ DEFUN(cfg_mncc_int, cfg_mncc_int_cmd, static struct cmd_node mncc_int_node = { MNCC_INT_NODE, - "%s(mncc-int)#", + "%s(config-mncc-int)# ", 1, }; @@ -864,6 +864,8 @@ int bsc_vty_init_extra(void) install_element(CONFIG_NODE, &cfg_mncc_int_cmd); install_node(&mncc_int_node, config_write_mncc_int); install_default(MNCC_INT_NODE); + install_element(MNCC_INT_NODE, &ournode_exit_cmd); + install_element(MNCC_INT_NODE, &ournode_end_cmd); install_element(MNCC_INT_NODE, &mnccint_def_codec_f_cmd); install_element(MNCC_INT_NODE, &mnccint_def_codec_h_cmd); diff --git a/openbsc/src/osmo-bsc/osmo_bsc_vty.c b/openbsc/src/osmo-bsc/osmo_bsc_vty.c index 276a490ba..26f92292a 100644 --- a/openbsc/src/osmo-bsc/osmo_bsc_vty.c +++ b/openbsc/src/osmo-bsc/osmo_bsc_vty.c @@ -41,7 +41,7 @@ static struct osmo_msc_data *osmo_msc_data(struct vty *vty) static struct cmd_node msc_node = { MSC_NODE, - "%s(msc)#", + "%s(config-msc)# ", 1, }; diff --git a/openbsc/src/osmo-bsc_nat/bsc_nat_vty.c b/openbsc/src/osmo-bsc_nat/bsc_nat_vty.c index 1646b592e..220e9606c 100644 --- a/openbsc/src/osmo-bsc_nat/bsc_nat_vty.c +++ b/openbsc/src/osmo-bsc_nat/bsc_nat_vty.c @@ -47,19 +47,19 @@ static struct bsc_nat *_nat; static struct cmd_node nat_node = { NAT_NODE, - "%s(nat)#", + "%s(config-nat)# ", 1, }; static struct cmd_node bsc_node = { NAT_BSC_NODE, - "%s(bsc)#", + "%s(config-nat-bsc)# ", 1, }; static struct cmd_node pgroup_node = { PGROUP_NODE, - "%s(paging-group)#", + "%s(config-nat-paging-group)# ", 1, }; @@ -1042,6 +1042,8 @@ int bsc_nat_vty_init(struct bsc_nat *nat) install_element(NAT_NODE, &cfg_nat_no_pgroup_cmd); install_node(&pgroup_node, config_write_pgroup); install_default(PGROUP_NODE); + install_element(PGROUP_NODE, &ournode_exit_cmd); + install_element(PGROUP_NODE, &ournode_end_cmd); install_element(PGROUP_NODE, &cfg_pgroup_lac_cmd); install_element(PGROUP_NODE, &cfg_pgroup_no_lac_cmd); -- cgit v1.2.3