<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>