Change in osmo-msc[master]: add osmo-msc --vty-ref-xml: dump VTY ref XML to stdout

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

neels gerrit-no-reply at lists.osmocom.org
Tue Jun 23 13:18:44 UTC 2020


neels has submitted this change. ( https://gerrit.osmocom.org/c/osmo-msc/+/18924 )

Change subject: add osmo-msc --vty-ref-xml: dump VTY ref XML to stdout
......................................................................

add osmo-msc --vty-ref-xml: dump VTY ref XML to stdout

Add only a long option to not clutter the cmdline namespace.

To add a long option without a short letter is slightly complex: use the 'flag'
and 'val' mechanism as in 'man 3 getopt' to write an option index to
long_option.

Make sure that all VTY commands have been added before parsing cmdline options:
move various VTY init further above. For msc_vty_init(), the global msc_network
already needs to be allocated, so also move that.

Depends: Ic74bbdb6dc5ea05f03c791cc70184861e39cd492 (libosmocore)
Change-Id: I9146d5a44427509265420f52ae6540ad93eb14fc
---
M src/osmo-msc/msc_main.c
1 file changed, 20 insertions(+), 8 deletions(-)

Approvals:
  Jenkins Builder: Verified
  laforge: Looks good to me, approved



diff --git a/src/osmo-msc/msc_main.c b/src/osmo-msc/msc_main.c
index cf1e504..f2ccff5 100644
--- a/src/osmo-msc/msc_main.c
+++ b/src/osmo-msc/msc_main.c
@@ -131,12 +131,14 @@
 	printf("  -V --version               Print the version of OsmoMSC.\n");
 	printf("  -e --log-level number      Set a global loglevel.\n");
 	printf("  -M --mncc-sock-path PATH   Disable built-in MNCC handler and offer socket.\n");
+	printf("  --vty-ref-xml              Generate the VTY reference XML output and exit.\n");
 }
 
 static void handle_options(int argc, char **argv)
 {
 	while (1) {
 		int option_index = 0, c;
+		static int long_option = 0;
 		static struct option long_options[] = {
 			{"help", 0, 0, 'h'},
 			{"debug", 1, 0, 'd'},
@@ -149,6 +151,7 @@
 			{"log-level", 1, 0, 'e'},
 			{"mncc-sock-path", 1, 0, 'M'},
 			{"no-dbcounter", 0, 0, 'C'}, /* deprecated */
+			{"vty-ref-xml", 0, &long_option, 1},
 			{0, 0, 0, 0}
 		};
 
@@ -162,6 +165,15 @@
 			print_usage();
 			print_help();
 			exit(0);
+		case 0:
+			switch (long_option) {
+			case 1:
+				vty_dump_xml_ref(stdout);
+				exit(0);
+			default:
+				fprintf(stderr, "error parsing cmdline options\n");
+				exit(2);
+			}
 		case 's':
 			log_set_use_color(osmo_stderr_target, 0);
 			break;
@@ -534,9 +546,9 @@
 	OSMO_ASSERT(osmo_ss7_init() == 0);
 	osmo_ss7_vty_init_asp(tall_msc_ctx);
 	osmo_sccp_vty_init();
-
-	/* Parse options */
-	handle_options(argc, argv);
+	ctrl_vty_init(tall_msc_ctx);
+	logging_vty_add_cmds();
+	osmo_talloc_vty_add_cmds();
 
 	/* Allocate global gsm_network struct.
 	 * At first set the internal MNCC as default, may be changed below according to cfg or cmdline option. */
@@ -544,6 +556,11 @@
 	if (!msc_network)
 		return -ENOMEM;
 
+	msc_vty_init(msc_network);
+
+	/* Parse options */
+	handle_options(argc, argv);
+
 	call_leg_init(msc_network);
 	mncc_call_fsm_init(msc_network);
 
@@ -552,11 +569,6 @@
 		exit(1);
 	}
 
-	ctrl_vty_init(tall_msc_ctx);
-	logging_vty_add_cmds();
-	osmo_talloc_vty_add_cmds();
-	msc_vty_init(msc_network);
-
 #ifdef BUILD_SMPP
 	if (smpp_openbsc_alloc_init(tall_msc_ctx) < 0)
 		return -1;

-- 
To view, visit https://gerrit.osmocom.org/c/osmo-msc/+/18924
To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings

Gerrit-Project: osmo-msc
Gerrit-Branch: master
Gerrit-Change-Id: I9146d5a44427509265420f52ae6540ad93eb14fc
Gerrit-Change-Number: 18924
Gerrit-PatchSet: 5
Gerrit-Owner: neels <nhofmeyr at sysmocom.de>
Gerrit-Reviewer: Jenkins Builder
Gerrit-Reviewer: laforge <laforge at osmocom.org>
Gerrit-Reviewer: neels <nhofmeyr at sysmocom.de>
Gerrit-MessageType: merged
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osmocom.org/pipermail/gerrit-log/attachments/20200623/c5f1de7a/attachment.htm>


More information about the gerrit-log mailing list