<p>dexter has uploaded this change for <strong>review</strong>.</p><p><a href="https://gerrit.osmocom.org/c/osmo-mgw/+/19074">View Change</a></p><pre style="font-family: monospace,monospace; white-space: pre-wrap;">endp: require domain name also for E1 endpoints<br><br>RFC3435 requires an MGW domain name appeneded to every endpoints. When<br>defining endpoint names in Appendix E, the domain name is is not<br>mentioned for digital trunks, however, this does not mean that digital<br>trunks do not have a domain appended. Osmo-mgw currently violates the<br>spec because it explicitly checks if the domain name is _NOT_ present<br>for E1 endpoints.<br><br>Change-Id: Ibb800b689e090b97b58d0206959b660890acd967<br>---<br>M src/libosmo-mgcp/mgcp_endp.c<br>1 file changed, 14 insertions(+), 13 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/74/19074/1</pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;"><span>diff --git a/src/libosmo-mgcp/mgcp_endp.c b/src/libosmo-mgcp/mgcp_endp.c</span><br><span>index 5e7bebb..82f7732 100644</span><br><span>--- a/src/libosmo-mgcp/mgcp_endp.c</span><br><span>+++ b/src/libosmo-mgcp/mgcp_endp.c</span><br><span>@@ -77,8 +77,8 @@</span><br><span> }</span><br><span> </span><br><span> /* Generate E1 endpoint name from given numeric parameters */</span><br><span style="color: hsl(0, 100%, 40%);">-static char *gen_e1_epname(void *ctx, uint8_t trunk_nr, uint8_t ts_nr,</span><br><span style="color: hsl(0, 100%, 40%);">- uint8_t ss_nr)</span><br><span style="color: hsl(120, 100%, 40%);">+static char *gen_e1_epname(void *ctx, const char *domain, uint8_t trunk_nr,</span><br><span style="color: hsl(120, 100%, 40%);">+ uint8_t ts_nr, uint8_t ss_nr)</span><br><span> {</span><br><span> unsigned int rate;</span><br><span> unsigned int offset;</span><br><span>@@ -88,8 +88,9 @@</span><br><span> rate = e1_rates[ss_nr];</span><br><span> offset = e1_offsets[ss_nr];</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">- return talloc_asprintf(ctx, "%s%u/s-%u/su%u-%u",</span><br><span style="color: hsl(0, 100%, 40%);">- MGCP_ENDPOINT_PREFIX_E1_TRUNK, trunk_nr, ts_nr, rate, offset);</span><br><span style="color: hsl(120, 100%, 40%);">+ return talloc_asprintf(ctx, "%s%u/s-%u/su%u-%u@%s",</span><br><span style="color: hsl(120, 100%, 40%);">+ MGCP_ENDPOINT_PREFIX_E1_TRUNK, trunk_nr, ts_nr,</span><br><span style="color: hsl(120, 100%, 40%);">+ rate, offset, domain);</span><br><span> }</span><br><span> </span><br><span> /*! allocate an endpoint and set default values.</span><br><span>@@ -116,7 +117,9 @@</span><br><span> break;</span><br><span> case MGCP_TRUNK_E1:</span><br><span> endp->type = &ep_typeset.rtp;</span><br><span style="color: hsl(0, 100%, 40%);">- endp->name = gen_e1_epname(endp, trunk->trunk_nr, index / 15, index % 15);</span><br><span style="color: hsl(120, 100%, 40%);">+ endp->name = gen_e1_epname(endp, trunk->cfg->domain,</span><br><span style="color: hsl(120, 100%, 40%);">+ trunk->trunk_nr,</span><br><span style="color: hsl(120, 100%, 40%);">+ index / 15, index % 15);</span><br><span> break;</span><br><span> default:</span><br><span> osmo_panic("Cannot allocate unimplemented trunk type %d! %s:%d\n",</span><br><span>@@ -353,11 +356,9 @@</span><br><span> if (!trunk)</span><br><span> return NULL;</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">- /* Virtual endpoints require a domain name (see RFC3435, section E.3) */</span><br><span style="color: hsl(0, 100%, 40%);">- if (trunk->trunk_type == MGCP_TRUNK_VIRTUAL) {</span><br><span style="color: hsl(0, 100%, 40%);">- if (check_domain_name(epname, cfg))</span><br><span style="color: hsl(0, 100%, 40%);">- return NULL;</span><br><span style="color: hsl(0, 100%, 40%);">- }</span><br><span style="color: hsl(120, 100%, 40%);">+ /* All endpoint names require a domain as suffix */</span><br><span style="color: hsl(120, 100%, 40%);">+ if (check_domain_name(epname, cfg))</span><br><span style="color: hsl(120, 100%, 40%);">+ return NULL;</span><br><span> </span><br><span> /* Identify the endpoint on the trunk */</span><br><span> endp = mgcp_endp_by_name_trunk(cause, epname, trunk);</span><br><span>@@ -567,9 +568,9 @@</span><br><span> break;</span><br><span> </span><br><span> /* Pick overlapping endpoint to check */</span><br><span style="color: hsl(0, 100%, 40%);">- epname_check =</span><br><span style="color: hsl(0, 100%, 40%);">- gen_e1_epname(endp, endp->trunk->trunk_nr, ts_nr,</span><br><span style="color: hsl(0, 100%, 40%);">- interlock[i]);</span><br><span style="color: hsl(120, 100%, 40%);">+ epname_check = gen_e1_epname(endp, endp->trunk->cfg->domain,</span><br><span style="color: hsl(120, 100%, 40%);">+ endp->trunk->trunk_nr, ts_nr,</span><br><span style="color: hsl(120, 100%, 40%);">+ interlock[i]);</span><br><span> endp_check = find_specific_endpoint(epname_check, endp->trunk);</span><br><span> if (!endp_check) {</span><br><span> LOGPENDP(endp, DLMGCP, LOGL_ERROR,</span><br><span></span><br></pre><p>To view, visit <a href="https://gerrit.osmocom.org/c/osmo-mgw/+/19074">change 19074</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/+/19074"/><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: Ibb800b689e090b97b58d0206959b660890acd967 </div>
<div style="display:none"> Gerrit-Change-Number: 19074 </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>