[PATCH 1/2] vty: Use vty_install_default() instead of bsc_install_default()

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/OpenBSC@lists.osmocom.org/.

Jacob Erlbeck jerlbeck at sysmocom.de
Tue Oct 29 08:30:30 UTC 2013


Remove ournode_exit_cmd, ournode_end_cmd, and bsc_install_default()
since this functionality is provided by the current libosmocore.

Replace calls to bsc_install_default() by call to
vty_install_default() with the following semantic patch:

    @rule1@
    expression N;
    @@
    - bsc_install_default(N);
    + vty_install_default(N);

Ticket: OW#952
Sponsored-by: On-Waves ehf
---
 openbsc/include/openbsc/vty.h             |    4 ---
 openbsc/src/gprs/gb_proxy_vty.c           |    2 +-
 openbsc/src/gprs/sgsn_vty.c               |    2 +-
 openbsc/src/libbsc/abis_nm_vty.c          |    2 +-
 openbsc/src/libbsc/abis_om2000_vty.c      |    2 +-
 openbsc/src/libbsc/bsc_vty.c              |    8 +++---
 openbsc/src/libcommon/common_vty.c        |   44 -----------------------------
 openbsc/src/libmgcp/mgcp_vty.c            |    4 +--
 openbsc/src/libmsc/smpp_vty.c             |    5 ++--
 openbsc/src/libmsc/vty_interface_layer3.c |    2 +-
 openbsc/src/osmo-bsc/osmo_bsc_vty.c       |    4 +--
 openbsc/src/osmo-bsc_nat/bsc_nat_vty.c    |    6 ++--
 12 files changed, 18 insertions(+), 67 deletions(-)

diff --git a/openbsc/include/openbsc/vty.h b/openbsc/include/openbsc/vty.h
index f74516a..9e07eb7 100644
--- a/openbsc/include/openbsc/vty.h
+++ b/openbsc/include/openbsc/vty.h
@@ -14,8 +14,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;
 
 enum bsc_vty_node {
 	GSMNET_NODE = _LAST_OSMOVTY_NODE + 1,
@@ -42,8 +40,6 @@ enum bsc_vty_node {
 extern int bsc_vty_is_config_node(struct vty *vty, int node);
 extern void bsc_replace_string(void *ctx, char **dst, const char *newstr);
 
-void bsc_install_default(enum node_type node);
-
 struct log_info;
 int bsc_vty_init(const struct log_info *cat);
 int bsc_vty_init_extra(void);
diff --git a/openbsc/src/gprs/gb_proxy_vty.c b/openbsc/src/gprs/gb_proxy_vty.c
index 82d49ca..2de0d3b 100644
--- a/openbsc/src/gprs/gb_proxy_vty.c
+++ b/openbsc/src/gprs/gb_proxy_vty.c
@@ -85,7 +85,7 @@ int gbproxy_vty_init(void)
 
 	install_element(CONFIG_NODE, &cfg_gbproxy_cmd);
 	install_node(&gbproxy_node, config_write_gbproxy);
-	bsc_install_default(GBPROXY_NODE);
+	vty_install_default(GBPROXY_NODE);
 	install_element(GBPROXY_NODE, &cfg_nsip_sgsn_nsei_cmd);
 
 	return 0;
diff --git a/openbsc/src/gprs/sgsn_vty.c b/openbsc/src/gprs/sgsn_vty.c
index 8106b7d..5fb7145 100644
--- a/openbsc/src/gprs/sgsn_vty.c
+++ b/openbsc/src/gprs/sgsn_vty.c
@@ -418,7 +418,7 @@ int sgsn_vty_init(void)
 
 	install_element(CONFIG_NODE, &cfg_sgsn_cmd);
 	install_node(&sgsn_node, config_write_sgsn);
-	bsc_install_default(SGSN_NODE);
+	vty_install_default(SGSN_NODE);
 	install_element(SGSN_NODE, &cfg_sgsn_bind_addr_cmd);
 	install_element(SGSN_NODE, &cfg_ggsn_remote_ip_cmd);
 	//install_element(SGSN_NODE, &cfg_ggsn_remote_port_cmd);
diff --git a/openbsc/src/libbsc/abis_nm_vty.c b/openbsc/src/libbsc/abis_nm_vty.c
index 5db667d..a14e5c2 100644
--- a/openbsc/src/libbsc/abis_nm_vty.c
+++ b/openbsc/src/libbsc/abis_nm_vty.c
@@ -183,7 +183,7 @@ int abis_nm_vty_init(void)
 	install_element(ENABLE_NODE, &oml_classnum_inst_cmd);
 	install_node(&oml_node, dummy_config_write);
 
-	bsc_install_default(OML_NODE);
+	vty_install_default(OML_NODE);
 	install_element(OML_NODE, &oml_chg_adm_state_cmd);
 	install_element(OML_NODE, &oml_opstart_cmd);
 
diff --git a/openbsc/src/libbsc/abis_om2000_vty.c b/openbsc/src/libbsc/abis_om2000_vty.c
index eb8f4d5..8325e29 100644
--- a/openbsc/src/libbsc/abis_om2000_vty.c
+++ b/openbsc/src/libbsc/abis_om2000_vty.c
@@ -445,7 +445,7 @@ int abis_om2k_vty_init(void)
 	install_element(ENABLE_NODE, &om2k_classnum_inst_cmd);
 	install_node(&om2k_node, dummy_config_write);
 
-	bsc_install_default(OM2K_NODE);
+	vty_install_default(OM2K_NODE);
 	install_element(OM2K_NODE, &om2k_reset_cmd);
 	install_element(OM2K_NODE, &om2k_start_cmd);
 	install_element(OM2K_NODE, &om2k_status_cmd);
diff --git a/openbsc/src/libbsc/bsc_vty.c b/openbsc/src/libbsc/bsc_vty.c
index 5d03b2a..5a9976b 100644
--- a/openbsc/src/libbsc/bsc_vty.c
+++ b/openbsc/src/libbsc/bsc_vty.c
@@ -3101,7 +3101,7 @@ int bsc_vty_init(const struct log_info *cat)
 
 	install_element(CONFIG_NODE, &cfg_net_cmd);
 	install_node(&net_node, config_write_net);
-	bsc_install_default(GSMNET_NODE);
+	vty_install_default(GSMNET_NODE);
 	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);
@@ -3137,7 +3137,7 @@ int bsc_vty_init(const struct log_info *cat)
 
 	install_element(GSMNET_NODE, &cfg_bts_cmd);
 	install_node(&bts_node, config_write_bts);
-	bsc_install_default(BTS_NODE);
+	vty_install_default(BTS_NODE);
 	install_element(BTS_NODE, &cfg_bts_type_cmd);
 	install_element(BTS_NODE, &cfg_description_cmd);
 	install_element(BTS_NODE, &cfg_no_description_cmd);
@@ -3199,7 +3199,7 @@ int bsc_vty_init(const struct log_info *cat)
 
 	install_element(BTS_NODE, &cfg_trx_cmd);
 	install_node(&trx_node, dummy_config_write);
-	bsc_install_default(TRX_NODE);
+	vty_install_default(TRX_NODE);
 	install_element(TRX_NODE, &cfg_trx_arfcn_cmd);
 	install_element(TRX_NODE, &cfg_description_cmd);
 	install_element(TRX_NODE, &cfg_no_description_cmd);
@@ -3211,7 +3211,7 @@ int bsc_vty_init(const struct log_info *cat)
 
 	install_element(TRX_NODE, &cfg_ts_cmd);
 	install_node(&ts_node, dummy_config_write);
-	bsc_install_default(TS_NODE);
+	vty_install_default(TS_NODE);
 	install_element(TS_NODE, &cfg_ts_pchan_cmd);
 	install_element(TS_NODE, &cfg_ts_pchan_compat_cmd);
 	install_element(TS_NODE, &cfg_ts_tsc_cmd);
diff --git a/openbsc/src/libcommon/common_vty.c b/openbsc/src/libcommon/common_vty.c
index 0bf43b0..3f8f16f 100644
--- a/openbsc/src/libcommon/common_vty.c
+++ b/openbsc/src/libcommon/common_vty.c
@@ -118,40 +118,6 @@ enum node_type bsc_vty_go_parent(struct vty *vty)
 	return vty->node;
 }
 
-/* Down vty node level. */
-gDEFUN(ournode_exit,
-       ournode_exit_cmd, "exit", "Exit current mode and down to previous mode\n")
-{
-	bsc_vty_go_parent (vty);
-	return CMD_SUCCESS;
-}
-
-/* End of configuration. */
-gDEFUN(ournode_end,
-       ournode_end_cmd, "end", "End current mode and change to enable mode.")
-{
-	enum node_type last_node = CONFIG_NODE;
-
-	if (vty->node > ENABLE_NODE) {
-		/* Repeatedly call go_parent until a top node is reached. */
-		while (vty->node > CONFIG_NODE) {
-			if (vty->node == last_node) {
-				/* Ensure termination, this shouldn't happen. */
-				break;
-			}
-			last_node = vty->node;
-			bsc_vty_go_parent(vty);
-		}
-
-		vty_config_unlock(vty);
-		if (vty->node > ENABLE_NODE)
-			vty->node = ENABLE_NODE;
-		vty->index = NULL;
-		vty->index_sub = NULL;
-	}
-	return CMD_SUCCESS;
-}
-
 int bsc_vty_is_config_node(struct vty *vty, int node)
 {
 	switch (node) {
@@ -174,13 +140,3 @@ void bsc_replace_string(void *ctx, char **dst, const char *newstr)
 		talloc_free(*dst);
 	*dst = talloc_strdup(ctx, newstr);
 }
-
-void bsc_install_default(enum node_type node)
-{
-	install_default (node);
-
-	if (node > CONFIG_NODE) {
-		install_element(node, &ournode_exit_cmd);
-		install_element(node, &ournode_end_cmd);
-	}
-}
diff --git a/openbsc/src/libmgcp/mgcp_vty.c b/openbsc/src/libmgcp/mgcp_vty.c
index 9421f4f..3c239d8 100644
--- a/openbsc/src/libmgcp/mgcp_vty.c
+++ b/openbsc/src/libmgcp/mgcp_vty.c
@@ -786,7 +786,7 @@ int mgcp_vty_init(void)
 	install_element(CONFIG_NODE, &cfg_mgcp_cmd);
 	install_node(&mgcp_node, config_write_mgcp);
 
-	bsc_install_default(MGCP_NODE);
+	vty_install_default(MGCP_NODE);
 	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);
@@ -818,7 +818,7 @@ int mgcp_vty_init(void)
 
 	install_element(MGCP_NODE, &cfg_mgcp_trunk_cmd);
 	install_node(&trunk_node, config_write_trunk);
-	bsc_install_default(TRUNK_NODE);
+	vty_install_default(TRUNK_NODE);
 	install_element(TRUNK_NODE, &cfg_trunk_payload_number_cmd);
 	install_element(TRUNK_NODE, &cfg_trunk_payload_name_cmd);
 	install_element(TRUNK_NODE, &cfg_trunk_payload_number_cmd_old);
diff --git a/openbsc/src/libmsc/smpp_vty.c b/openbsc/src/libmsc/smpp_vty.c
index bf503f5..75427a9 100644
--- a/openbsc/src/libmsc/smpp_vty.c
+++ b/openbsc/src/libmsc/smpp_vty.c
@@ -509,7 +509,7 @@ static int config_write_esme(struct vty *v)
 int smpp_vty_init(void)
 {
 	install_node(&smpp_node, config_write_smpp);
-	bsc_install_default(SMPP_NODE);
+	vty_install_default(SMPP_NODE);
 	install_element(CONFIG_NODE, &cfg_smpp_cmd);
 
 	install_element(SMPP_NODE, &cfg_smpp_port_cmd);
@@ -519,7 +519,7 @@ int smpp_vty_init(void)
 	install_element(SMPP_NODE, &cfg_no_esme_cmd);
 
 	install_node(&esme_node, config_write_esme);
-	bsc_install_default(SMPP_ESME_NODE);
+	vty_install_default(SMPP_ESME_NODE);
 	install_element(SMPP_ESME_NODE, &cfg_esme_passwd_cmd);
 	install_element(SMPP_ESME_NODE, &cfg_esme_no_passwd_cmd);
 	install_element(SMPP_ESME_NODE, &cfg_esme_route_pfx_cmd);
@@ -532,7 +532,6 @@ int smpp_vty_init(void)
 	install_element(SMPP_ESME_NODE, &cfg_esme_no_osmo_ext_cmd);
 	install_element(SMPP_ESME_NODE, &cfg_esme_dcs_transp_cmd);
 	install_element(SMPP_ESME_NODE, &cfg_esme_no_dcs_transp_cmd);
-	install_element(SMPP_ESME_NODE, &ournode_exit_cmd);
 
 	install_element_ve(&show_esme_cmd);
 
diff --git a/openbsc/src/libmsc/vty_interface_layer3.c b/openbsc/src/libmsc/vty_interface_layer3.c
index e0324d6..7869d5b 100644
--- a/openbsc/src/libmsc/vty_interface_layer3.c
+++ b/openbsc/src/libmsc/vty_interface_layer3.c
@@ -1002,7 +1002,7 @@ int bsc_vty_init_extra(void)
 
 	install_element(CONFIG_NODE, &cfg_mncc_int_cmd);
 	install_node(&mncc_int_node, config_write_mncc_int);
-	bsc_install_default(MNCC_INT_NODE);
+	vty_install_default(MNCC_INT_NODE);
 	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 fceaa4a..4fac8ea 100644
--- a/openbsc/src/osmo-bsc/osmo_bsc_vty.c
+++ b/openbsc/src/osmo-bsc/osmo_bsc_vty.c
@@ -676,7 +676,7 @@ int bsc_vty_init_extra(void)
 	install_element(CONFIG_NODE, &cfg_net_bsc_cmd);
 
 	install_node(&bsc_node, config_write_bsc);
-	bsc_install_default(BSC_NODE);
+	vty_install_default(BSC_NODE);
 	install_element(BSC_NODE, &cfg_net_bsc_mid_call_text_cmd);
 	install_element(BSC_NODE, &cfg_net_bsc_mid_call_timeout_cmd);
 	install_element(BSC_NODE, &cfg_net_rf_socket_cmd);
@@ -686,7 +686,7 @@ int bsc_vty_init_extra(void)
 	install_element(BSC_NODE, &cfg_net_bsc_no_missing_msc_text_cmd);
 
 	install_node(&msc_node, config_write_msc);
-	bsc_install_default(MSC_NODE);
+	vty_install_default(MSC_NODE);
 	install_element(MSC_NODE, &cfg_net_bsc_token_cmd);
 	install_element(MSC_NODE, &cfg_net_bsc_ncc_cmd);
 	install_element(MSC_NODE, &cfg_net_bsc_mcc_cmd);
diff --git a/openbsc/src/osmo-bsc_nat/bsc_nat_vty.c b/openbsc/src/osmo-bsc_nat/bsc_nat_vty.c
index 72a6801..8dea34e 100644
--- a/openbsc/src/osmo-bsc_nat/bsc_nat_vty.c
+++ b/openbsc/src/osmo-bsc_nat/bsc_nat_vty.c
@@ -1192,7 +1192,7 @@ int bsc_nat_vty_init(struct bsc_nat *nat)
 	/* nat group */
 	install_element(CONFIG_NODE, &cfg_nat_cmd);
 	install_node(&nat_node, config_write_nat);
-	bsc_install_default(NAT_NODE);
+	vty_install_default(NAT_NODE);
 	install_element(NAT_NODE, &cfg_nat_msc_ip_cmd);
 	install_element(NAT_NODE, &cfg_nat_msc_port_cmd);
 	install_element(NAT_NODE, &cfg_nat_auth_time_cmd);
@@ -1233,14 +1233,14 @@ int bsc_nat_vty_init(struct bsc_nat *nat)
 	install_element(NAT_NODE, &cfg_nat_pgroup_cmd);
 	install_element(NAT_NODE, &cfg_nat_no_pgroup_cmd);
 	install_node(&pgroup_node, config_write_pgroup);
-	bsc_install_default(PGROUP_NODE);
+	vty_install_default(PGROUP_NODE);
 	install_element(PGROUP_NODE, &cfg_pgroup_lac_cmd);
 	install_element(PGROUP_NODE, &cfg_pgroup_no_lac_cmd);
 
 	/* BSC subgroups */
 	install_element(NAT_NODE, &cfg_bsc_cmd);
 	install_node(&bsc_node, config_write_bsc);
-	bsc_install_default(NAT_BSC_NODE);
+	vty_install_default(NAT_BSC_NODE);
 	install_element(NAT_BSC_NODE, &cfg_bsc_token_cmd);
 	install_element(NAT_BSC_NODE, &cfg_bsc_lac_cmd);
 	install_element(NAT_BSC_NODE, &cfg_bsc_no_lac_cmd);
-- 
1.7.9.5





More information about the OpenBSC mailing list