[MERGED] libosmo-sccp[master]: add osmo_sccp_user_name()

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 Hofmeyr gerrit-no-reply at lists.osmocom.org
Mon Dec 25 00:43:11 UTC 2017


Neels Hofmeyr has submitted this change and it was merged.

Change subject: add osmo_sccp_user_name()
......................................................................


add osmo_sccp_user_name()

There is a naming dilemma: though the osmo_ prefix is now reserved for
libosmocore, all surrounding API already has the osmo_ prefix.

This will be used by osmo-hnbgw's VTY 'show cnlink' command.

Change-Id: Ib7abf69cfcf4c56273223054b280458451e6c2f6
---
M include/osmocom/sigtran/sccp_sap.h
M src/sccp_user.c
2 files changed, 23 insertions(+), 0 deletions(-)

Approvals:
  Harald Welte: Looks good to me, approved
  Jenkins Builder: Verified



diff --git a/include/osmocom/sigtran/sccp_sap.h b/include/osmocom/sigtran/sccp_sap.h
index 7a4f9bf..84d762c 100644
--- a/include/osmocom/sigtran/sccp_sap.h
+++ b/include/osmocom/sigtran/sccp_sap.h
@@ -275,3 +275,5 @@
 				      uint32_t ssn);
 
 bool osmo_sccp_check_addr(struct osmo_sccp_addr *addr, uint32_t presence);
+
+const char *osmo_sccp_user_name(struct osmo_sccp_user *scu);
diff --git a/src/sccp_user.c b/src/sccp_user.c
index cd89c88..a6161c0 100644
--- a/src/sccp_user.c
+++ b/src/sccp_user.c
@@ -293,6 +293,27 @@
 	return true;
 }
 
+/*! Compose a human readable string to describe the SCCP user's connection.
+ * The output follows ['<scu.name>':]<local-sccp-addr>, e.g.  "'OsmoHNBW':RI=SSN_PC,PC=0.23.5,SSN=RANAP",
+ * or just "RI=SSN_PC,PC=0.23.5,SSN=RANAP" if no scu->name is set.
+ * This calls osmo_sccp_addr_name(), which returns a static buffer; hence calling this function and
+ * osmo_sccp_addr_name() in the same printf statement is likely to conflict. */
+const char *osmo_sccp_user_name(struct osmo_sccp_user *scu)
+{
+	static char buf[128];
+	struct osmo_sccp_addr sca;
+	/* Interestingly enough, the osmo_sccp_user stores an SSN and PC, but not in an osmo_sccp_addr
+	 * struct. To be able to use osmo_sccp_addr_name(), we need to first create an osmo_sccp_addr. */
+	osmo_sccp_make_addr_pc_ssn(&sca, scu->pc, scu->ssn);
+	snprintf(buf, sizeof(buf),
+		 "%s%s%s",
+		 scu->name && *scu->name ? scu->name : "",
+		 scu->name && *scu->name ? ":" : "",
+		 osmo_sccp_addr_name(scu->inst->ss7, &sca));
+	buf[sizeof(buf)-1] = '\0';
+	return buf;
+}
+
 /***********************************************************************
  * Convenience function for CLIENT
  ***********************************************************************/

-- 
To view, visit https://gerrit.osmocom.org/5569
To unsubscribe, visit https://gerrit.osmocom.org/settings

Gerrit-MessageType: merged
Gerrit-Change-Id: Ib7abf69cfcf4c56273223054b280458451e6c2f6
Gerrit-PatchSet: 1
Gerrit-Project: libosmo-sccp
Gerrit-Branch: master
Gerrit-Owner: Neels Hofmeyr <nhofmeyr at sysmocom.de>
Gerrit-Reviewer: Harald Welte <laforge at gnumonks.org>
Gerrit-Reviewer: Jenkins Builder
Gerrit-Reviewer: Neels Hofmeyr <nhofmeyr at sysmocom.de>



More information about the gerrit-log mailing list