<p>pespin has uploaded this change for <strong>review</strong>.</p><p><a href="https://gerrit.osmocom.org/c/libosmo-sccp/+/19852">View Change</a></p><pre style="font-family: monospace,monospace; white-space: pre-wrap;">Fix matching IPv6 anyaddr :: in osmo_ss7_asp_find_by_socket_addr<br><br>Change-Id: I36dd8f1978e3b7b785660745378c9cf77a21a566<br>---<br>M src/osmo_ss7.c<br>1 file changed, 17 insertions(+), 3 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/52/19852/1</pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;"><span>diff --git a/src/osmo_ss7.c b/src/osmo_ss7.c</span><br><span>index 6357be1..fd8bfdb 100644</span><br><span>--- a/src/osmo_ss7.c</span><br><span>+++ b/src/osmo_ss7.c</span><br><span>@@ -1256,6 +1256,7 @@</span><br><span> socklen_t sa_len_r = sizeof(sa_r);</span><br><span> char hostbuf_l[64], hostbuf_r[64];</span><br><span> uint16_t local_port, remote_port;</span><br><span style="color: hsl(120, 100%, 40%);">+ bool loc_is_v6, rem_is_v6;</span><br><span> int rc;</span><br><span> int i;</span><br><span> </span><br><span>@@ -1287,6 +1288,8 @@</span><br><span> */</span><br><span> chop_v4_mapped_on_v6_prefix(hostbuf_l);</span><br><span> chop_v4_mapped_on_v6_prefix(hostbuf_r);</span><br><span style="color: hsl(120, 100%, 40%);">+ loc_is_v6 = host_is_ipv6(hostbuf_l);</span><br><span style="color: hsl(120, 100%, 40%);">+ rem_is_v6 = host_is_ipv6(hostbuf_r);</span><br><span> </span><br><span> /* check all instances for any ASP definition matching the</span><br><span> * address combination of local/remote ip/port */</span><br><span>@@ -1299,8 +1302,13 @@</span><br><span> continue;</span><br><span> </span><br><span> for (i = 0; i < asp->cfg.local.host_cnt; i++) {</span><br><span style="color: hsl(0, 100%, 40%);">- bool is_any = !asp->cfg.local.host[i] || !strcmp(asp->cfg.local.host[i], "0.0.0.0");</span><br><span style="color: hsl(0, 100%, 40%);">- if (is_any || !strcmp(asp->cfg.local.host[i], hostbuf_l))</span><br><span style="color: hsl(120, 100%, 40%);">+ bool iter_is_any;</span><br><span style="color: hsl(120, 100%, 40%);">+ bool iter_is_v6 = host_is_ipv6(asp->cfg.local.host[i]);</span><br><span style="color: hsl(120, 100%, 40%);">+ if (iter_is_v6 != loc_is_v6)</span><br><span style="color: hsl(120, 100%, 40%);">+ continue;</span><br><span style="color: hsl(120, 100%, 40%);">+ iter_is_any = iter_is_v6 ? host_is_ipv6_anyaddr(asp->cfg.local.host[i])</span><br><span style="color: hsl(120, 100%, 40%);">+ : host_is_ipv4_anyaddr(asp->cfg.local.host[i]);</span><br><span style="color: hsl(120, 100%, 40%);">+ if (iter_is_any || !strcmp(asp->cfg.local.host[i], hostbuf_l))</span><br><span> break;</span><br><span> }</span><br><span> if (i == asp->cfg.local.host_cnt)</span><br><span>@@ -1309,7 +1317,13 @@</span><br><span> /* If no remote host was set, it's probably a server and hence we match any cli src */</span><br><span> if (asp->cfg.remote.host_cnt) {</span><br><span> for (i = 0; i < asp->cfg.remote.host_cnt; i++) {</span><br><span style="color: hsl(0, 100%, 40%);">- if (!asp->cfg.remote.host[i] || !strcmp(asp->cfg.remote.host[i], hostbuf_r))</span><br><span style="color: hsl(120, 100%, 40%);">+ bool iter_is_any;</span><br><span style="color: hsl(120, 100%, 40%);">+ bool iter_is_v6 = host_is_ipv6(asp->cfg.remote.host[i]);</span><br><span style="color: hsl(120, 100%, 40%);">+ if (iter_is_v6 != rem_is_v6)</span><br><span style="color: hsl(120, 100%, 40%);">+ continue;</span><br><span style="color: hsl(120, 100%, 40%);">+ iter_is_any = iter_is_v6 ? host_is_ipv6_anyaddr(asp->cfg.remote.host[i])</span><br><span style="color: hsl(120, 100%, 40%);">+ : host_is_ipv4_anyaddr(asp->cfg.remote.host[i]);</span><br><span style="color: hsl(120, 100%, 40%);">+ if (iter_is_any || !strcmp(asp->cfg.remote.host[i], hostbuf_r))</span><br><span> break;</span><br><span> }</span><br><span> if (i == asp->cfg.remote.host_cnt)</span><br><span></span><br></pre><p>To view, visit <a href="https://gerrit.osmocom.org/c/libosmo-sccp/+/19852">change 19852</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/+/19852"/><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: I36dd8f1978e3b7b785660745378c9cf77a21a566 </div>
<div style="display:none"> Gerrit-Change-Number: 19852 </div>
<div style="display:none"> Gerrit-PatchSet: 1 </div>
<div style="display:none"> Gerrit-Owner: pespin <pespin@sysmocom.de> </div>
<div style="display:none"> Gerrit-MessageType: newchange </div>