<p>neels has uploaded this change for <strong>review</strong>.</p><p><a href="https://gerrit.osmocom.org/c/osmo-msc/+/15948">View Change</a></p><pre style="font-family: monospace,monospace; white-space: pre-wrap;">MNCC: add optional SDP to the socket protocol<br><br>Add a char buffer of 1024 characters length as space for SDP to pass to /<br>receive from MNCC.<br><br>Actually support receiving MNCC without such an SDP tail. The main reason for<br>this is to avoid the need to adjust the ttcn3 implementation of MNCC: it would<br>stop working for older osmo-msc.<br><br>Older or non-SIP MNCC peers could operate the previous MNCC protocol unchanged<br>(save the protocol number bump) without having to implement SDP.<br><br>The SDP part in the MNCC protocol will be used in upcoming patch<br>I8c3b2de53ffae4ec3a66b9dabf308c290a2c999f.<br><br>Change-Id: Ie16f0804c4d99760cd4a0c544d0889b6313eebb7<br>---<br>M include/osmocom/msc/mncc.h<br>M src/libmsc/mncc.c<br>2 files changed, 11 insertions(+), 3 deletions(-)<br><br></pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;">git pull ssh://gerrit.osmocom.org:29418/osmo-msc refs/changes/48/15948/1</pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;"><span>diff --git a/include/osmocom/msc/mncc.h b/include/osmocom/msc/mncc.h</span><br><span>index 28ee9b3..2297b54 100644</span><br><span>--- a/include/osmocom/msc/mncc.h</span><br><span>+++ b/include/osmocom/msc/mncc.h</span><br><span>@@ -159,6 +159,9 @@</span><br><span> </span><br><span>     unsigned char   lchan_type;</span><br><span>  unsigned char   lchan_mode;</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+ /* A buffer to contain SDP ('\0' terminated) */</span><br><span style="color: hsl(120, 100%, 40%);">+       char            sdp[1024];</span><br><span> };</span><br><span> </span><br><span> struct gsm_data_frame {</span><br><span>@@ -167,7 +170,7 @@</span><br><span>        unsigned char   data[0];</span><br><span> };</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-#define MNCC_SOCK_VERSION     5</span><br><span style="color: hsl(120, 100%, 40%);">+#define MNCC_SOCK_VERSION    6</span><br><span> struct gsm_mncc_hello {</span><br><span>         uint32_t        msg_type;</span><br><span>    uint32_t        version;</span><br><span>@@ -190,6 +193,7 @@</span><br><span>       uint16_t        port;</span><br><span>        uint32_t        payload_type;</span><br><span>        uint32_t        payload_msg_type;</span><br><span style="color: hsl(120, 100%, 40%);">+     char            sdp[1024];</span><br><span> };</span><br><span> </span><br><span> struct gsm_mncc_bridge {</span><br><span>diff --git a/src/libmsc/mncc.c b/src/libmsc/mncc.c</span><br><span>index d0b2ff2..3d17ab9 100644</span><br><span>--- a/src/libmsc/mncc.c</span><br><span>+++ b/src/libmsc/mncc.c</span><br><span>@@ -262,7 +262,9 @@</span><br><span>      case MNCC_RTP_FREE:</span><br><span>  case MNCC_RTP_CONNECT:</span><br><span>       case MNCC_RTP_CREATE:</span><br><span style="color: hsl(0, 100%, 40%);">-           if (len < sizeof(struct gsm_mncc_rtp)) {</span><br><span style="color: hsl(120, 100%, 40%);">+           /* Should we receive an MNCC message without SDP, the zero-initialized msgb will guarantee that the</span><br><span style="color: hsl(120, 100%, 40%);">+            * char sdp[] starts with a '\0'. */</span><br><span style="color: hsl(120, 100%, 40%);">+          if (len < offsetof(struct gsm_mncc_rtp, sdp)) {</span><br><span>                   LOGP(DMNCC, LOGL_ERROR, "Short MNCC RTP\n");</span><br><span>                       return -EINVAL;</span><br><span>              }</span><br><span>@@ -279,7 +281,9 @@</span><br><span>              }</span><br><span>            break;</span><br><span>       default:</span><br><span style="color: hsl(0, 100%, 40%);">-                if (len < sizeof(struct gsm_mncc)) {</span><br><span style="color: hsl(120, 100%, 40%);">+               /* Should we receive an MNCC message without SDP, the zero-initialized msgb will guarantee that the</span><br><span style="color: hsl(120, 100%, 40%);">+            * char sdp[] starts with a '\0'. */</span><br><span style="color: hsl(120, 100%, 40%);">+          if (len < offsetof(struct gsm_mncc, sdp)) {</span><br><span>                       LOGP(DMNCC, LOGL_ERROR, "Short MNCC Signalling\n");</span><br><span>                        return -EINVAL;</span><br><span>              }</span><br><span></span><br></pre><p>To view, visit <a href="https://gerrit.osmocom.org/c/osmo-msc/+/15948">change 15948</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-msc/+/15948"/><meta itemprop="name" content="View Change"/></div></div>

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