Change in osmo-bsc[master]: osmo-bsc/bsc_vty: fail on get_amr_from_arg error

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/.

osmith gerrit-no-reply at lists.osmocom.org
Wed Mar 11 13:58:24 UTC 2020


osmith has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bsc/+/17461 )


Change subject: osmo-bsc/bsc_vty: fail on get_amr_from_arg error
......................................................................

osmo-bsc/bsc_vty: fail on get_amr_from_arg error

Fail parsing osmo-bsc.cfg if the AMR modes are not in order or not
unique.

Related: OS#4199
Change-Id: Ic2f3690396fb0425f6b358e1e21a8b8b56eb3ae0
---
M src/osmo-bsc/bsc_vty.c
1 file changed, 20 insertions(+), 11 deletions(-)



  git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/61/17461/1

diff --git a/src/osmo-bsc/bsc_vty.c b/src/osmo-bsc/bsc_vty.c
index d1a268d..dd157c0 100644
--- a/src/osmo-bsc/bsc_vty.c
+++ b/src/osmo-bsc/bsc_vty.c
@@ -3717,7 +3717,7 @@
 #define AMR_TH_TEXT "AMR threshold between codecs\nMS side\nBTS side\n"
 #define AMR_HY_TEXT "AMR hysteresis between codecs\nMS side\nBTS side\n"
 
-static void get_amr_from_arg(struct vty *vty, int argc, const char *argv[], int full)
+static int get_amr_from_arg(struct vty *vty, int argc, const char *argv[], int full)
 {
 	struct gsm_bts *bts = vty->index;
 	struct amr_multirate_conf *mr = (full) ? &bts->mr_full: &bts->mr_half;
@@ -3733,12 +3733,12 @@
 		if (mode_prev > mode) {
 			vty_out(vty, "Modes must be listed in order%s",
 				VTY_NEWLINE);
-			return;
+			return -1;
 		}
 
 		if (mode_prev == mode) {
 			vty_out(vty, "Modes must be unique %s", VTY_NEWLINE);
-			return;
+			return -2;
 		}
 		mode_prev = mode;
 	}
@@ -3763,6 +3763,7 @@
 		mr->ms_mode[i].hysteresis = 0;
 		mr->bts_mode[i].hysteresis = 0;
 	}
+	return 0;
 }
 
 static void get_amr_th_from_arg(struct vty *vty, int argc, const char *argv[], int full)
@@ -3878,7 +3879,8 @@
 	AMR_TEXT "Full Rate\n" AMR_MODE_TEXT
 	AMR_TCHF_HELP_STR)
 {
-	get_amr_from_arg(vty, 1, argv, 1);
+	if (get_amr_from_arg(vty, 1, argv, 1))
+		return CMD_WARNING;
 	return check_amr_config(vty);
 }
 
@@ -3887,7 +3889,8 @@
 	AMR_TEXT "Full Rate\n" AMR_MODE_TEXT
 	AMR_TCHF_HELP_STR AMR_TCHF_HELP_STR)
 {
-	get_amr_from_arg(vty, 2, argv, 1);
+	if (get_amr_from_arg(vty, 2, argv, 1))
+		return CMD_WARNING;
 	return check_amr_config(vty);
 }
 
@@ -3896,7 +3899,8 @@
 	AMR_TEXT "Full Rate\n" AMR_MODE_TEXT
 	AMR_TCHF_HELP_STR AMR_TCHF_HELP_STR AMR_TCHF_HELP_STR)
 {
-	get_amr_from_arg(vty, 3, argv, 1);
+	if (get_amr_from_arg(vty, 3, argv, 1))
+		return CMD_WARNING;
 	return check_amr_config(vty);
 }
 
@@ -3905,7 +3909,8 @@
 	AMR_TEXT "Full Rate\n" AMR_MODE_TEXT
 	AMR_TCHF_HELP_STR AMR_TCHF_HELP_STR AMR_TCHF_HELP_STR AMR_TCHF_HELP_STR)
 {
-	get_amr_from_arg(vty, 4, argv, 1);
+	if (get_amr_from_arg(vty, 4, argv, 1))
+		return CMD_WARNING;
 	return check_amr_config(vty);
 }
 
@@ -3976,7 +3981,8 @@
 	AMR_TEXT "Half Rate\n" AMR_MODE_TEXT
 	AMR_TCHH_HELP_STR)
 {
-	get_amr_from_arg(vty, 1, argv, 0);
+	if (get_amr_from_arg(vty, 1, argv, 0))
+		return CMD_WARNING;
 	return check_amr_config(vty);
 }
 
@@ -3985,7 +3991,8 @@
 	AMR_TEXT "Half Rate\n" AMR_MODE_TEXT
 	AMR_TCHH_HELP_STR AMR_TCHH_HELP_STR)
 {
-	get_amr_from_arg(vty, 2, argv, 0);
+	if (get_amr_from_arg(vty, 2, argv, 0))
+		return CMD_WARNING;
 	return check_amr_config(vty);
 }
 
@@ -3994,7 +4001,8 @@
 	AMR_TEXT "Half Rate\n" AMR_MODE_TEXT
 	AMR_TCHH_HELP_STR AMR_TCHH_HELP_STR AMR_TCHH_HELP_STR)
 {
-	get_amr_from_arg(vty, 3, argv, 0);
+	if (get_amr_from_arg(vty, 3, argv, 0))
+		return CMD_WARNING;
 	return check_amr_config(vty);
 }
 
@@ -4003,7 +4011,8 @@
 	AMR_TEXT "Half Rate\n" AMR_MODE_TEXT
 	AMR_TCHH_HELP_STR AMR_TCHH_HELP_STR AMR_TCHH_HELP_STR AMR_TCHH_HELP_STR)
 {
-	get_amr_from_arg(vty, 4, argv, 0);
+	if (get_amr_from_arg(vty, 4, argv, 0))
+		return CMD_WARNING;
 	return check_amr_config(vty);
 }
 

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

Gerrit-Project: osmo-bsc
Gerrit-Branch: master
Gerrit-Change-Id: Ic2f3690396fb0425f6b358e1e21a8b8b56eb3ae0
Gerrit-Change-Number: 17461
Gerrit-PatchSet: 1
Gerrit-Owner: osmith <osmith at sysmocom.de>
Gerrit-MessageType: newchange
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osmocom.org/pipermail/gerrit-log/attachments/20200311/2b63a1bb/attachment.htm>


More information about the gerrit-log mailing list