Change in osmo-bsc[master]: minor code dup: smlc_set_cs7_instance()

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
Thu Oct 29 22:48:58 UTC 2020


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


Change subject: minor code dup: smlc_set_cs7_instance()
......................................................................

minor code dup: smlc_set_cs7_instance()

Change-Id: I140bbe9922d3c13ee48ca75171097768bb3e8ac5
---
M src/osmo-bsc/lb.c
1 file changed, 25 insertions(+), 20 deletions(-)



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

diff --git a/src/osmo-bsc/lb.c b/src/osmo-bsc/lb.c
index 654f261..be7d446 100644
--- a/src/osmo-bsc/lb.c
+++ b/src/osmo-bsc/lb.c
@@ -587,6 +587,28 @@
 	addr->ssn = want_ssn;
 }
 
+/* Prevent mixing addresses from different CS7 instances */
+bool smlc_set_cs7_instance(struct vty *vty, const char *from_vty_cmd, const char *from_addr,
+			   struct osmo_ss7_instance *ss7)
+{
+	if (bsc_gsmnet->smlc->cs7_instance_valid) {
+		if (bsc_gsmnet->smlc->cs7_instance != ss7->cfg.id) {
+			LOGP(DLCS, LOGL_ERROR,
+			     "%s: expecting address from cs7 instance %u, but '%s' is from %u\n",
+			     from_vty_cmd, bsc_gsmnet->smlc->cs7_instance, from_addr, ss7->cfg.id);
+			vty_out(vty, "Error:"
+				" %s: expecting address from cs7 instance %u, but '%s' is from %u%s",
+				from_vty_cmd, bsc_gsmnet->smlc->cs7_instance, from_addr, ss7->cfg.id, VTY_NEWLINE);
+			return false;
+		}
+	} else {
+		bsc_gsmnet->smlc->cs7_instance = ss7->cfg.id;
+		bsc_gsmnet->smlc->cs7_instance_valid = true;
+		LOGP(DLCS, LOGL_NOTICE, "Lb interface is using cs7 instance %u\n", bsc_gsmnet->smlc->cs7_instance);
+	}
+	return true;
+}
+
 DEFUN(cfg_smlc_cs7_bsc_addr,
       cfg_smlc_cs7_bsc_addr_cmd,
       "bsc-addr NAME",
@@ -601,17 +623,9 @@
 		return CMD_ERR_INCOMPLETE;
 	}
 
-	/* Prevent mixing addresses from different CS7 instances */
-	if (bsc_gsmnet->smlc->cs7_instance_valid
-	    && bsc_gsmnet->smlc->cs7_instance != ss7->cfg.id) {
-		vty_out(vty,
-			"Error: SCCP addressbook entry from mismatching CS7 instance: '%s'%s",
-			bsc_addr_name, VTY_NEWLINE);
+	if (!smlc_set_cs7_instance(vty, "smlc / bsc-addr", bsc_addr_name, ss7))
 		return CMD_WARNING;
-	}
 
-	bsc_gsmnet->smlc->cs7_instance = ss7->cfg.id;
-	bsc_gsmnet->smlc->cs7_instance_valid = true;
 	enforce_ssn(vty, &bsc_gsmnet->smlc->bsc_addr, OSMO_SCCP_SSN_BSC_BSSAP_LE);
 	bsc_gsmnet->smlc->bsc_addr_name = talloc_strdup(bsc_gsmnet, bsc_addr_name);
 	return CMD_SUCCESS;
@@ -631,18 +645,9 @@
 		return CMD_ERR_INCOMPLETE;
 	}
 
-	/* Prevent mixing addresses from different CS7/SS7 instances */
-	if (bsc_gsmnet->smlc->cs7_instance_valid) {
-		if (bsc_gsmnet->smlc->cs7_instance != ss7->cfg.id) {
-			vty_out(vty,
-				"Error: SCCP addressbook entry from mismatching CS7 instance: '%s'%s",
-				smlc_addr_name, VTY_NEWLINE);
-			return CMD_ERR_INCOMPLETE;
-		}
-	}
+	if (!smlc_set_cs7_instance(vty, "smlc / smlc-addr", smlc_addr_name, ss7))
+		return CMD_WARNING;
 
-	bsc_gsmnet->smlc->cs7_instance = ss7->cfg.id;
-	bsc_gsmnet->smlc->cs7_instance_valid = true;
 	enforce_ssn(vty, &bsc_gsmnet->smlc->smlc_addr, OSMO_SCCP_SSN_SMLC_BSSAP_LE);
 	bsc_gsmnet->smlc->smlc_addr_name = talloc_strdup(bsc_gsmnet, smlc_addr_name);
 	return CMD_SUCCESS;

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

Gerrit-Project: osmo-bsc
Gerrit-Branch: master
Gerrit-Change-Id: I140bbe9922d3c13ee48ca75171097768bb3e8ac5
Gerrit-Change-Number: 20978
Gerrit-PatchSet: 1
Gerrit-Owner: neels <nhofmeyr at sysmocom.de>
Gerrit-MessageType: newchange
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osmocom.org/pipermail/gerrit-log/attachments/20201029/f438d55f/attachment.htm>


More information about the gerrit-log mailing list