<p>dexter has uploaded this change for <strong>review</strong>.</p><p><a href="https://gerrit.osmocom.org/c/osmo-mgw/+/24972">View Change</a></p><pre style="font-family: monospace,monospace; white-space: pre-wrap;">mgcp_protocol: rafctor function create_response_with_sdp<br><br>The function create_response_calls add_params, which is rather short.<br>The code in there can also be put in create_response_with_sdp. The<br>decision whether the endpoint name (Z) should be added or not, should be<br>made by the caller.<br><br>Change-Id: I7e29c513f4386832646e96194ed6c2397405ed3b<br>Related: SYS#5535<br>---<br>M src/libosmo-mgcp/mgcp_protocol.c<br>1 file changed, 17 insertions(+), 27 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/24972/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 ef82cfd..5ff94af 100644</span><br><span>--- a/src/libosmo-mgcp/mgcp_protocol.c</span><br><span>+++ b/src/libosmo-mgcp/mgcp_protocol.c</span><br><span>@@ -237,33 +237,13 @@</span><br><span>   return create_resp(endp, code, " FAIL", msg, trans, NULL, NULL);</span><br><span> }</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-/* Add MGCP parameters to a message buffer */</span><br><span style="color: hsl(0, 100%, 40%);">-static int add_params(struct msgb *msg, const struct mgcp_endpoint *endp,</span><br><span style="color: hsl(0, 100%, 40%);">-                     const struct mgcp_conn_rtp *conn)</span><br><span style="color: hsl(0, 100%, 40%);">-{</span><br><span style="color: hsl(0, 100%, 40%);">-        int rc;</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">- /* NOTE: Only in the virtual trunk we allow dynamic endpoint names */</span><br><span style="color: hsl(0, 100%, 40%);">-   if (endp->wildcarded_req</span><br><span style="color: hsl(0, 100%, 40%);">-         && endp->trunk->trunk_type == MGCP_TRUNK_VIRTUAL) {</span><br><span style="color: hsl(0, 100%, 40%);">-           rc = msgb_printf(msg, "Z: %s\r\n", endp->name);</span><br><span style="color: hsl(0, 100%, 40%);">-            if (rc < 0)</span><br><span style="color: hsl(0, 100%, 40%);">-                  return -EINVAL;</span><br><span style="color: hsl(0, 100%, 40%);">- }</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-       rc = msgb_printf(msg, "I: %s\r\n", conn->conn->id);</span><br><span style="color: hsl(0, 100%, 40%);">-     if (rc < 0)</span><br><span style="color: hsl(0, 100%, 40%);">-          return -EINVAL;</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">- return 0;</span><br><span style="color: hsl(0, 100%, 40%);">-}</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span> /* Format MGCP response string (with SDP attached) */</span><br><span> static struct msgb *create_response_with_sdp(struct mgcp_endpoint *endp,</span><br><span>                                           struct mgcp_conn_rtp *conn,</span><br><span>                                          const char *msg,</span><br><span>                                             const char *trans_id,</span><br><span style="color: hsl(0, 100%, 40%);">-                                           bool add_conn_params)</span><br><span style="color: hsl(120, 100%, 40%);">+                                         bool add_epname,</span><br><span style="color: hsl(120, 100%, 40%);">+                                      bool add_conn_id)</span><br><span> {</span><br><span>  /* cfg->local_ip allows overwritting the announced IP address with</span><br><span>         * regards to the one we actually bind to. Useful in behind-NAT</span><br><span>@@ -281,9 +261,16 @@</span><br><span>       if (!sdp)</span><br><span>            return NULL;</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-        /* Attach optional connection parameters */</span><br><span style="color: hsl(0, 100%, 40%);">-     if (add_conn_params) {</span><br><span style="color: hsl(0, 100%, 40%);">-          rc = add_params(sdp, endp, conn);</span><br><span style="color: hsl(120, 100%, 40%);">+     /* Attach optional endpoint name */</span><br><span style="color: hsl(120, 100%, 40%);">+   if (add_epname) {</span><br><span style="color: hsl(120, 100%, 40%);">+             rc = msgb_printf(sdp, "Z: %s\r\n", endp->name);</span><br><span style="color: hsl(120, 100%, 40%);">+          if (rc < 0)</span><br><span style="color: hsl(120, 100%, 40%);">+                        goto error;</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%);">+   /* Attach optional connection id */</span><br><span style="color: hsl(120, 100%, 40%);">+   if (add_conn_id) {</span><br><span style="color: hsl(120, 100%, 40%);">+            rc = msgb_printf(sdp, "I: %s\r\n", conn->conn->id);</span><br><span>          if (rc < 0)</span><br><span>                       goto error;</span><br><span>  }</span><br><span>@@ -1091,7 +1078,10 @@</span><br><span>            "CRCX: connection successfully created\n");</span><br><span>       rate_ctr_inc(rate_ctr_group_get_ctr(rate_ctrs, MGCP_CRCX_SUCCESS));</span><br><span>  mgcp_endp_update(endp);</span><br><span style="color: hsl(0, 100%, 40%);">- return create_response_with_sdp(endp, conn, "CRCX", pdata->trans, true);</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+       /* NOTE: Only in the virtual trunk we allow dynamic endpoint names */</span><br><span style="color: hsl(120, 100%, 40%);">+ bool add_epname = rq->wildcarded && endp->trunk->trunk_type == MGCP_TRUNK_VIRTUAL;</span><br><span style="color: hsl(120, 100%, 40%);">+   return create_response_with_sdp(endp, conn, "CRCX", pdata->trans, add_epname, true);</span><br><span> error2:</span><br><span>         mgcp_endp_release(endp);</span><br><span>     LOGPENDP(endp, DLMGCP, LOGL_NOTICE,</span><br><span>@@ -1339,7 +1329,7 @@</span><br><span>  LOGPCONN(conn->conn, DLMGCP, LOGL_NOTICE,</span><br><span>                  "MDCX: connection successfully modified\n");</span><br><span>      mgcp_endp_update(endp);</span><br><span style="color: hsl(0, 100%, 40%);">- return create_response_with_sdp(endp, conn, "MDCX", pdata->trans, false);</span><br><span style="color: hsl(120, 100%, 40%);">+        return create_response_with_sdp(endp, conn, "MDCX", pdata->trans, false, false);</span><br><span> error3:</span><br><span>     return create_err_response(endp, error_code, "MDCX", pdata->trans);</span><br><span> </span><br><span></span><br></pre><p>To view, visit <a href="https://gerrit.osmocom.org/c/osmo-mgw/+/24972">change 24972</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/+/24972"/><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: I7e29c513f4386832646e96194ed6c2397405ed3b </div>
<div style="display:none"> Gerrit-Change-Number: 24972 </div>
<div style="display:none"> Gerrit-PatchSet: 1 </div>
<div style="display:none"> Gerrit-Owner: dexter <pmaier@sysmocom.de> </div>
<div style="display:none"> Gerrit-MessageType: newchange </div>