<p>dexter has uploaded this change for <strong>review</strong>.</p><p><a href="https://gerrit.osmocom.org/9472">View Change</a></p><pre style="font-family: monospace,monospace; white-space: pre-wrap;">protocol: do not change LCO, when no LCO are present<br><br>In the current implementation the LCO parameters are reset. This means<br>that an MDCX without LCO will reset the LCO that have previously set<br>via CRCX. But according to RFC 3435 6.8 LocalConnectionOptions, the<br>LCO parameters should be preserved or left at their defaults if missing.<br><br>- Make sure LCO are retained if no LCO string is present.<br>- Also preserve the values of individual parameters if missing.<br><br>Change-Id: Ia0d73f61516618317dcd1d49384818fd8de27aa6<br>---<br>M src/libosmo-mgcp/mgcp_protocol.c<br>1 file changed, 8 insertions(+), 4 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/9472/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 b403be0..ded1552 100644</span><br><span>--- a/src/libosmo-mgcp/mgcp_protocol.c</span><br><span>+++ b/src/libosmo-mgcp/mgcp_protocol.c</span><br><span>@@ -405,10 +405,12 @@</span><br><span>  char *p_opt, *a_opt;</span><br><span>         char codec[9];</span><br><span> </span><br><span style="color: hsl(120, 100%, 40%);">+    if (!options)</span><br><span style="color: hsl(120, 100%, 40%);">+         return 0;</span><br><span style="color: hsl(120, 100%, 40%);">+     if (strlen(options) == 0)</span><br><span style="color: hsl(120, 100%, 40%);">+             return 0;</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span>  talloc_free(lco->string);</span><br><span style="color: hsl(0, 100%, 40%);">-    talloc_free(lco->codec);</span><br><span style="color: hsl(0, 100%, 40%);">-     lco->codec = NULL;</span><br><span style="color: hsl(0, 100%, 40%);">-   lco->pkt_period_min = lco->pkt_period_max = 0;</span><br><span>         lco->string = talloc_strdup(ctx, options ? options : "");</span><br><span> </span><br><span>   p_opt = strstr(lco->string, "p:");</span><br><span>@@ -417,8 +419,10 @@</span><br><span>               lco->pkt_period_max = lco->pkt_period_min;</span><br><span> </span><br><span>         a_opt = strstr(lco->string, "a:");</span><br><span style="color: hsl(0, 100%, 40%);">- if (a_opt && sscanf(a_opt, "a:%8[^,]", codec) == 1)</span><br><span style="color: hsl(120, 100%, 40%);">+ if (a_opt && sscanf(a_opt, "a:%8[^,]", codec) == 1) {</span><br><span style="color: hsl(120, 100%, 40%);">+               talloc_free(lco->codec);</span><br><span>          lco->codec = talloc_strdup(ctx, codec);</span><br><span style="color: hsl(120, 100%, 40%);">+    }</span><br><span> </span><br><span>        LOGP(DLMGCP, LOGL_DEBUG,</span><br><span>          "local CX options: lco->pkt_period_max: %i, lco->codec: %s\n",</span><br><span></span><br></pre><p>To view, visit <a href="https://gerrit.osmocom.org/9472">change 9472</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/9472"/><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-MessageType: newchange </div>
<div style="display:none"> Gerrit-Change-Id: Ia0d73f61516618317dcd1d49384818fd8de27aa6 </div>
<div style="display:none"> Gerrit-Change-Number: 9472 </div>
<div style="display:none"> Gerrit-PatchSet: 1 </div>
<div style="display:none"> Gerrit-Owner: dexter <pmaier@sysmocom.de> </div>