<p>neels has uploaded this change for <strong>review</strong>.</p><p><a href="https://gerrit.osmocom.org/c/libosmo-sccp/+/19012">View Change</a></p><pre style="font-family: monospace,monospace; white-space: pre-wrap;">add osmo_ss7_instance_asp_find_by_proto()<br><br>For 'cs7' auto configuration, we want to pick up an ASP that is not associated<br>with an AS yet. For that, we need API that looks in the entire ss7 instance,<br>not only for already present AS.<br><br>(Before this, the auto configuration detected "floating" ASP only if they had a<br>specific name, which is changed by upcoming patch<br>I2954e0167729fd0b1a7d0144a5b5775fc1c44c35)<br><br>Related: OS#4635<br>Change-Id: Ib204c6906eb02fe64b43b75375e1b69e2a8abd30<br>---<br>M include/osmocom/sigtran/osmo_ss7.h<br>M src/osmo_ss7.c<br>2 files changed, 25 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/12/19012/1</pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;"><span>diff --git a/include/osmocom/sigtran/osmo_ss7.h b/include/osmocom/sigtran/osmo_ss7.h</span><br><span>index 2502407..06cc43c 100644</span><br><span>--- a/include/osmocom/sigtran/osmo_ss7.h</span><br><span>+++ b/include/osmocom/sigtran/osmo_ss7.h</span><br><span>@@ -439,6 +439,9 @@</span><br><span> *osmo_ss7_asp_find_by_proto(struct osmo_ss7_as *as,</span><br><span>                             enum osmo_ss7_asp_protocol proto);</span><br><span> struct osmo_ss7_asp *</span><br><span style="color: hsl(120, 100%, 40%);">+osmo_ss7_instance_asp_find_by_proto(struct osmo_ss7_instance *inst, enum osmo_ss7_asp_protocol proto,</span><br><span style="color: hsl(120, 100%, 40%);">+                                    unsigned int match_idx);</span><br><span style="color: hsl(120, 100%, 40%);">+struct osmo_ss7_asp *</span><br><span> osmo_ss7_asp_find(struct osmo_ss7_instance *inst, const char *name,</span><br><span>             uint16_t remote_port, uint16_t local_port,</span><br><span>                   enum osmo_ss7_asp_protocol proto);</span><br><span>diff --git a/src/osmo_ss7.c b/src/osmo_ss7.c</span><br><span>index cdac27a..ad6f171 100644</span><br><span>--- a/src/osmo_ss7.c</span><br><span>+++ b/src/osmo_ss7.c</span><br><span>@@ -1285,6 +1285,28 @@</span><br><span>   return NULL;</span><br><span> }</span><br><span> </span><br><span style="color: hsl(120, 100%, 40%);">+/*! \brief Find an ASP that matches the given protocol anywhere in the SS7 instance.</span><br><span style="color: hsl(120, 100%, 40%);">+ *  \param[in] inst  SS7 instance to look for ASP in.</span><br><span style="color: hsl(120, 100%, 40%);">+ *  \param[in] match_idx  return Nth matching ASP, 0 to return first match.</span><br><span style="color: hsl(120, 100%, 40%);">+ *  \returns SS7  ASP in case a matching one is found; NULL otherwise */</span><br><span style="color: hsl(120, 100%, 40%);">+struct osmo_ss7_asp *</span><br><span style="color: hsl(120, 100%, 40%);">+osmo_ss7_instance_asp_find_by_proto(struct osmo_ss7_instance *inst, enum osmo_ss7_asp_protocol proto,</span><br><span style="color: hsl(120, 100%, 40%);">+                                   unsigned int match_idx)</span><br><span style="color: hsl(120, 100%, 40%);">+{</span><br><span style="color: hsl(120, 100%, 40%);">+        struct osmo_ss7_asp *asp;</span><br><span style="color: hsl(120, 100%, 40%);">+     OSMO_ASSERT(ss7_initialized);</span><br><span style="color: hsl(120, 100%, 40%);">+ llist_for_each_entry(asp, &inst->asp_list, list) {</span><br><span style="color: hsl(120, 100%, 40%);">+             if (asp->cfg.proto != proto)</span><br><span style="color: hsl(120, 100%, 40%);">+                       continue;</span><br><span style="color: hsl(120, 100%, 40%);">+             if (match_idx) {</span><br><span style="color: hsl(120, 100%, 40%);">+                      match_idx--;</span><br><span style="color: hsl(120, 100%, 40%);">+                  continue;</span><br><span style="color: hsl(120, 100%, 40%);">+             }</span><br><span style="color: hsl(120, 100%, 40%);">+             return asp;</span><br><span style="color: hsl(120, 100%, 40%);">+   }</span><br><span style="color: hsl(120, 100%, 40%);">+     return NULL;</span><br><span style="color: hsl(120, 100%, 40%);">+}</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span> struct osmo_ss7_asp *</span><br><span> osmo_ss7_asp_find(struct osmo_ss7_instance *inst, const char *name,</span><br><span>              uint16_t remote_port, uint16_t local_port,</span><br><span></span><br></pre><p>To view, visit <a href="https://gerrit.osmocom.org/c/libosmo-sccp/+/19012">change 19012</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/+/19012"/><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: Ib204c6906eb02fe64b43b75375e1b69e2a8abd30 </div>
<div style="display:none"> Gerrit-Change-Number: 19012 </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>