<p>pespin has uploaded this change for <strong>review</strong>.</p><p><a href="https://gerrit.osmocom.org/c/osmo-mgw/+/19972">View Change</a></p><pre style="font-family: monospace,monospace; white-space: pre-wrap;">mgw: Announce and rebind new local address if change required during MDCX<br><br>MDCX may provide a new remote address, which means we may need to update<br>our announced IP addr and re-bind our local end. This can happen for<br>instance if MGW initially provided an IPv4 during CRCX ACK, and now MDCX<br>tells us the remote has an IPv6 address.<br><br>Change-Id: Iaed424e2c209e1753e1f579752fc684aaad7a512<br>---<br>M src/libosmo-mgcp/mgcp_protocol.c<br>1 file changed, 15 insertions(+), 0 deletions(-)<br><br></pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;">git pull ssh://gerrit.osmocom.org:29418/osmo-mgw refs/changes/72/19972/1</pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;"><span>diff --git a/src/libosmo-mgcp/mgcp_protocol.c b/src/libosmo-mgcp/mgcp_protocol.c</span><br><span>index 1e7ccbf..4c00140 100644</span><br><span>--- a/src/libosmo-mgcp/mgcp_protocol.c</span><br><span>+++ b/src/libosmo-mgcp/mgcp_protocol.c</span><br><span>@@ -1006,6 +1006,7 @@</span><br><span> {</span><br><span>       struct mgcp_endpoint *endp = p->endp;</span><br><span>     struct rate_ctr_group *rate_ctrs = endp->trunk->ratectr.mgcp_mdcx_ctr_group;</span><br><span style="color: hsl(120, 100%, 40%);">+    char new_local_addr[INET6_ADDRSTRLEN];</span><br><span>       int error_code = 500;</span><br><span>        int silent = 0;</span><br><span>      int have_sdp = 0;</span><br><span>@@ -1170,6 +1171,20 @@</span><br><span>              that conn. */</span><br><span>     }</span><br><span> </span><br><span style="color: hsl(120, 100%, 40%);">+ /* MDCX may have provided a new remote address, which means we may need</span><br><span style="color: hsl(120, 100%, 40%);">+          to update our announced IP addr and re-bind our local end. This can</span><br><span style="color: hsl(120, 100%, 40%);">+           happen for instance if MGW initially provided an IPv4 during CRCX</span><br><span style="color: hsl(120, 100%, 40%);">+     ACK, and now MDCX tells us the remote has an IPv6 address. */</span><br><span style="color: hsl(120, 100%, 40%);">+      mgcp_get_local_addr(new_local_addr, conn);</span><br><span style="color: hsl(120, 100%, 40%);">+    if (strcmp(new_local_addr, conn->end.local_addr)) {</span><br><span style="color: hsl(120, 100%, 40%);">+                osmo_strlcpy(conn->end.local_addr, new_local_addr, sizeof(conn->end.local_addr));</span><br><span style="color: hsl(120, 100%, 40%);">+               mgcp_free_rtp_port(&conn->end);</span><br><span style="color: hsl(120, 100%, 40%);">+                if (allocate_port(endp, conn) != 0) {</span><br><span style="color: hsl(120, 100%, 40%);">+                 rate_ctr_inc(&rate_ctrs->ctr[MGCP_CRCX_FAIL_BIND_PORT]);</span><br><span style="color: hsl(120, 100%, 40%);">+                       goto error3;</span><br><span style="color: hsl(120, 100%, 40%);">+          }</span><br><span style="color: hsl(120, 100%, 40%);">+     }</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span>  if (setup_rtp_processing(endp, conn) != 0) {</span><br><span>                 rate_ctr_inc(&rate_ctrs->ctr[MGCP_MDCX_FAIL_START_RTP]);</span><br><span>              goto error3;</span><br><span></span><br></pre><p>To view, visit <a href="https://gerrit.osmocom.org/c/osmo-mgw/+/19972">change 19972</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/osmo-mgw/+/19972"/><meta itemprop="name" content="View Change"/></div></div>

<div style="display:none"> Gerrit-Project: osmo-mgw </div>
<div style="display:none"> Gerrit-Branch: master </div>
<div style="display:none"> Gerrit-Change-Id: Iaed424e2c209e1753e1f579752fc684aaad7a512 </div>
<div style="display:none"> Gerrit-Change-Number: 19972 </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>