<p>neels has uploaded this change for <strong>review</strong>.</p><p><a href="https://gerrit.osmocom.org/c/libosmo-sccp/+/18502">View Change</a></p><pre style="font-family: monospace,monospace; white-space: pre-wrap;">add osmo_sccp_user_find() as public API<br><br>To allow osmo-bsc to add more than one MSC peer on a single SCCP instance, it<br>must add a local SCCP user only once per SCCP instance. The first configured<br>MSC adds a local user, all subsequent MSC should use the same local SCCP user.<br>So, it is most convenient to provide a public function to return such user if<br>it exists.<br><br>Add as thin wrapper instead of renaming and moving the internal<br>sccp_user_find(): to keep the patch smaller, and to match the way<br>osmo_sccp_user_bind_pc() is a 1:1 wrapper for sccp_user_bind_pc().<br><br>Related: OS#3682<br>Change-Id: I9ecbab16b45268f626950303d6ff8296dd6acda0<br>---<br>M include/osmocom/sigtran/sccp_sap.h<br>M src/sccp_user.c<br>2 files changed, 18 insertions(+), 0 deletions(-)<br><br></pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;">git pull ssh://gerrit.osmocom.org:29418/libosmo-sccp refs/changes/02/18502/1</pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;"><span>diff --git a/include/osmocom/sigtran/sccp_sap.h b/include/osmocom/sigtran/sccp_sap.h</span><br><span>index 9d285eb..e012635 100644</span><br><span>--- a/include/osmocom/sigtran/sccp_sap.h</span><br><span>+++ b/include/osmocom/sigtran/sccp_sap.h</span><br><span>@@ -261,6 +261,8 @@</span><br><span> struct osmo_sccp_user *</span><br><span> osmo_sccp_user_bind(struct osmo_sccp_instance *inst, const char *name,</span><br><span>                  osmo_prim_cb prim_cb, uint16_t ssn);</span><br><span style="color: hsl(120, 100%, 40%);">+struct osmo_sccp_user *</span><br><span style="color: hsl(120, 100%, 40%);">+osmo_sccp_user_find(struct osmo_sccp_instance *inst, uint16_t ssn, uint32_t pc);</span><br><span> </span><br><span> int osmo_sccp_user_sap_down(struct osmo_sccp_user *scu, struct osmo_prim_hdr *oph);</span><br><span> int osmo_sccp_user_sap_down_nofree(struct osmo_sccp_user *scu, struct osmo_prim_hdr *oph);</span><br><span>diff --git a/src/sccp_user.c b/src/sccp_user.c</span><br><span>index d85fc1d..a36ac93 100644</span><br><span>--- a/src/sccp_user.c</span><br><span>+++ b/src/sccp_user.c</span><br><span>@@ -39,6 +39,8 @@</span><br><span> #include "xua_internal.h"</span><br><span> </span><br><span> /*! \brief Find a SCCP User registered for given PC+SSN or SSN only</span><br><span style="color: hsl(120, 100%, 40%);">+ * First search all users with a valid PC for a full PC+SSN match.</span><br><span style="color: hsl(120, 100%, 40%);">+ * If no such match was found, search all users with an invalid PC for an SSN-only match.</span><br><span>  *  \param[in] inst SCCP Instance in which to search</span><br><span>  *  \param[in] ssn Sub-System Number to search for</span><br><span>  *  \param[in] pc Point Code to search for</span><br><span>@@ -63,6 +65,20 @@</span><br><span>  return NULL;</span><br><span> }</span><br><span> </span><br><span style="color: hsl(120, 100%, 40%);">+/*! Find a SCCP User registered for given PC+SSN or SSN only.</span><br><span style="color: hsl(120, 100%, 40%);">+ * First search all users with a valid PC for a full PC+SSN match.</span><br><span style="color: hsl(120, 100%, 40%);">+ * If no match was found, search all users with an invalid PC for an SSN-only match.</span><br><span style="color: hsl(120, 100%, 40%);">+ *  \param[in] inst SCCP Instance in which to search.</span><br><span style="color: hsl(120, 100%, 40%);">+ *  \param[in] ssn Sub-System Number to search for.</span><br><span style="color: hsl(120, 100%, 40%);">+ *  \param[in] pc Point Code to search for.</span><br><span style="color: hsl(120, 100%, 40%);">+ *  \returns Matching SCCP User; NULL if none found.</span><br><span style="color: hsl(120, 100%, 40%);">+ */</span><br><span style="color: hsl(120, 100%, 40%);">+struct osmo_sccp_user *</span><br><span style="color: hsl(120, 100%, 40%);">+osmo_sccp_user_find(struct osmo_sccp_instance *inst, uint16_t ssn, uint32_t pc)</span><br><span style="color: hsl(120, 100%, 40%);">+{</span><br><span style="color: hsl(120, 100%, 40%);">+       return sccp_user_find(inst, ssn, pc);</span><br><span style="color: hsl(120, 100%, 40%);">+}</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span> /*! \brief Bind a SCCP User to a given Point Code</span><br><span>  *  \param[in] inst SCCP Instance</span><br><span>  *  \param[in] name human-readable name</span><br><span></span><br></pre><p>To view, visit <a href="https://gerrit.osmocom.org/c/libosmo-sccp/+/18502">change 18502</a>. To unsubscribe, or for help writing mail filters, visit <a href="https://gerrit.osmocom.org/settings">settings</a>.</p><div itemscope itemtype="http://schema.org/EmailMessage"><div itemscope itemprop="action" itemtype="http://schema.org/ViewAction"><link itemprop="url" href="https://gerrit.osmocom.org/c/libosmo-sccp/+/18502"/><meta itemprop="name" content="View Change"/></div></div>

<div style="display:none"> Gerrit-Project: libosmo-sccp </div>
<div style="display:none"> Gerrit-Branch: master </div>
<div style="display:none"> Gerrit-Change-Id: I9ecbab16b45268f626950303d6ff8296dd6acda0 </div>
<div style="display:none"> Gerrit-Change-Number: 18502 </div>
<div style="display:none"> Gerrit-PatchSet: 1 </div>
<div style="display:none"> Gerrit-Owner: neels <nhofmeyr@sysmocom.de> </div>
<div style="display:none"> Gerrit-MessageType: newchange </div>