<p>fixeria <strong>merged</strong> this change.</p><p><a href="https://gerrit.osmocom.org/c/osmo-msc/+/14467">View Change</a></p><div style="white-space:pre-wrap">Approvals:
Jenkins Builder: Verified
laforge: Looks good to me, but someone else must approve
pespin: Looks good to me, approved
</div><pre style="font-family: monospace,monospace; white-space: pre-wrap;">libmsc/msc_net_init.c: pass pointer to gsm_network directly<br><br>Change-Id: I122d2880b356997c60df5f0cf4f5ecb3abb2e672<br>---<br>M src/libmsc/gsm_04_11_gsup.c<br>M src/libmsc/gsm_09_11.c<br>M src/libmsc/msc_net_init.c<br>3 files changed, 12 insertions(+), 31 deletions(-)<br><br></pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;"><span>diff --git a/src/libmsc/gsm_04_11_gsup.c b/src/libmsc/gsm_04_11_gsup.c</span><br><span>index b4d74c7..331092a 100644</span><br><span>--- a/src/libmsc/gsm_04_11_gsup.c</span><br><span>+++ b/src/libmsc/gsm_04_11_gsup.c</span><br><span>@@ -117,19 +117,13 @@</span><br><span> }</span><br><span> </span><br><span> /* Triggers either RP-ACK or RP-ERROR on response from SMSC */</span><br><span style="color: hsl(0, 100%, 40%);">-static int gsm411_gsup_mo_handler(struct vlr_subscr *vsub,</span><br><span style="color: hsl(0, 100%, 40%);">- const struct osmo_gsup_message *gsup_msg)</span><br><span style="color: hsl(120, 100%, 40%);">+static int gsm411_gsup_mo_handler(struct gsm_network *net, struct vlr_subscr *vsub,</span><br><span style="color: hsl(120, 100%, 40%);">+ const struct osmo_gsup_message *gsup_msg)</span><br><span> {</span><br><span style="color: hsl(0, 100%, 40%);">- struct vlr_instance *vlr;</span><br><span style="color: hsl(0, 100%, 40%);">- struct gsm_network *net;</span><br><span> struct gsm_trans *trans;</span><br><span> const char *msg_name;</span><br><span> bool msg_is_err;</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">- /* Obtain required pointers */</span><br><span style="color: hsl(0, 100%, 40%);">- vlr = vsub->vlr;</span><br><span style="color: hsl(0, 100%, 40%);">- net = (struct gsm_network *) vlr->user_ctx;</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span> /* Associate logging messages with this subscriber */</span><br><span> log_set_context(LOG_CTX_VLR_SUBSCR, vsub);</span><br><span> </span><br><span>@@ -230,16 +224,12 @@</span><br><span> }</span><br><span> </span><br><span> /* Handles MT SMS (and triggers Paging Request if required) */</span><br><span style="color: hsl(0, 100%, 40%);">-static int gsm411_gsup_mt_handler(struct vlr_subscr *vsub,</span><br><span style="color: hsl(0, 100%, 40%);">- const struct osmo_gsup_message *gsup_msg)</span><br><span style="color: hsl(120, 100%, 40%);">+static int gsm411_gsup_mt_handler(struct gsm_network *net, struct vlr_subscr *vsub,</span><br><span style="color: hsl(120, 100%, 40%);">+ const struct osmo_gsup_message *gsup_msg)</span><br><span> {</span><br><span style="color: hsl(0, 100%, 40%);">- struct gsm_network *net;</span><br><span> bool sm_rp_mmts_ind;</span><br><span> int rc;</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">- /* Obtain required pointers */</span><br><span style="color: hsl(0, 100%, 40%);">- net = (struct gsm_network *) vsub->vlr->user_ctx;</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span> /* Associate logging messages with this subscriber */</span><br><span> log_set_context(LOG_CTX_VLR_SUBSCR, vsub);</span><br><span> </span><br><span>@@ -296,8 +286,8 @@</span><br><span> </span><br><span> int gsm411_gsup_rx(struct gsup_client_mux *gcm, void *data, const struct osmo_gsup_message *gsup_msg)</span><br><span> {</span><br><span style="color: hsl(0, 100%, 40%);">- struct vlr_instance *vlr = data;</span><br><span style="color: hsl(0, 100%, 40%);">- struct vlr_subscr *vsub = vlr_subscr_find_by_imsi(vlr, gsup_msg->imsi, __func__);</span><br><span style="color: hsl(120, 100%, 40%);">+ struct gsm_network *net = (struct gsm_network *) data;</span><br><span style="color: hsl(120, 100%, 40%);">+ struct vlr_subscr *vsub = vlr_subscr_find_by_imsi(net->vlr, gsup_msg->imsi, __func__);</span><br><span> </span><br><span> if (!vsub) {</span><br><span> LOGP(DLSMS, LOGL_ERROR, "Rx %s for unknown subscriber, rejecting\n",</span><br><span>@@ -313,12 +303,12 @@</span><br><span> case OSMO_GSUP_MSGT_READY_FOR_SM_ERROR:</span><br><span> case OSMO_GSUP_MSGT_READY_FOR_SM_RESULT:</span><br><span> DEBUGP(DMSC, "Routed to GSM 04.11 MO handler\n");</span><br><span style="color: hsl(0, 100%, 40%);">- return gsm411_gsup_mo_handler(vsub, gsup_msg);</span><br><span style="color: hsl(120, 100%, 40%);">+ return gsm411_gsup_mo_handler(net, vsub, gsup_msg);</span><br><span> </span><br><span> /* GSM 04.11 code implementing MT SMS */</span><br><span> case OSMO_GSUP_MSGT_MT_FORWARD_SM_REQUEST:</span><br><span> DEBUGP(DMSC, "Routed to GSM 04.11 MT handler\n");</span><br><span style="color: hsl(0, 100%, 40%);">- return gsm411_gsup_mt_handler(vsub, gsup_msg);</span><br><span style="color: hsl(120, 100%, 40%);">+ return gsm411_gsup_mt_handler(net, vsub, gsup_msg);</span><br><span> </span><br><span> default:</span><br><span> LOGP(DMM, LOGL_ERROR, "No handler found for %s, dropping message...\n",</span><br><span>diff --git a/src/libmsc/gsm_09_11.c b/src/libmsc/gsm_09_11.c</span><br><span>index f85c3f6..51cb2fb 100644</span><br><span>--- a/src/libmsc/gsm_09_11.c</span><br><span>+++ b/src/libmsc/gsm_09_11.c</span><br><span>@@ -402,14 +402,13 @@</span><br><span> </span><br><span> int gsm0911_gsup_rx(struct gsup_client_mux *gcm, void *data, const struct osmo_gsup_message *gsup_msg)</span><br><span> {</span><br><span style="color: hsl(0, 100%, 40%);">- struct vlr_instance *vlr = data;</span><br><span style="color: hsl(0, 100%, 40%);">- struct gsm_network *net;</span><br><span style="color: hsl(120, 100%, 40%);">+ struct gsm_network *net = (struct gsm_network *) data;</span><br><span> struct gsm_trans *trans;</span><br><span> struct gsm48_hdr *gh;</span><br><span> struct msgb *ss_msg;</span><br><span> bool trans_end;</span><br><span> struct msc_a *msc_a;</span><br><span style="color: hsl(0, 100%, 40%);">- struct vlr_subscr *vsub = vlr_subscr_find_by_imsi(vlr, gsup_msg->imsi, __func__);</span><br><span style="color: hsl(120, 100%, 40%);">+ struct vlr_subscr *vsub = vlr_subscr_find_by_imsi(net->vlr, gsup_msg->imsi, __func__);</span><br><span> </span><br><span> if (!vsub) {</span><br><span> LOGP(DSS, LOGL_ERROR, "Rx %s for unknown subscriber, rejecting\n",</span><br><span>@@ -421,14 +420,6 @@</span><br><span> /* Associate logging messages with this subscriber */</span><br><span> log_set_context(LOG_CTX_VLR_SUBSCR, vsub);</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">- /* Obtain pointer to vlr_instance */</span><br><span style="color: hsl(0, 100%, 40%);">- vlr = vsub->vlr;</span><br><span style="color: hsl(0, 100%, 40%);">- OSMO_ASSERT(vlr);</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">- /* Obtain pointer to gsm_network */</span><br><span style="color: hsl(0, 100%, 40%);">- net = (struct gsm_network *) vlr->user_ctx;</span><br><span style="color: hsl(0, 100%, 40%);">- OSMO_ASSERT(net);</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span> /* Handle errors */</span><br><span> if (OSMO_GSUP_IS_MSGT_ERROR(gsup_msg->message_type)) {</span><br><span> /* FIXME: handle this error somehow! */</span><br><span>diff --git a/src/libmsc/msc_net_init.c b/src/libmsc/msc_net_init.c</span><br><span>index 637ee74..4a752bf 100644</span><br><span>--- a/src/libmsc/msc_net_init.c</span><br><span>+++ b/src/libmsc/msc_net_init.c</span><br><span>@@ -117,8 +117,8 @@</span><br><span> .rx_cb = {</span><br><span> /* vlr.c sets up its own cb and data */</span><br><span> /* MSC-A and MSC-B set up their own cb and data */</span><br><span style="color: hsl(0, 100%, 40%);">- [OSMO_GSUP_MESSAGE_CLASS_SMS] = { .func = gsm411_gsup_rx, .data = net->vlr },</span><br><span style="color: hsl(0, 100%, 40%);">- [OSMO_GSUP_MESSAGE_CLASS_USSD] = { .func = gsm0911_gsup_rx, .data = net->vlr },</span><br><span style="color: hsl(120, 100%, 40%);">+ [OSMO_GSUP_MESSAGE_CLASS_SMS] = { .func = gsm411_gsup_rx, .data = net },</span><br><span style="color: hsl(120, 100%, 40%);">+ [OSMO_GSUP_MESSAGE_CLASS_USSD] = { .func = gsm0911_gsup_rx, .data = net },</span><br><span> },</span><br><span> };</span><br><span> </span><br><span></span><br></pre><p>To view, visit <a href="https://gerrit.osmocom.org/c/osmo-msc/+/14467">change 14467</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/+/14467"/><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: I122d2880b356997c60df5f0cf4f5ecb3abb2e672 </div>
<div style="display:none"> Gerrit-Change-Number: 14467 </div>
<div style="display:none"> Gerrit-PatchSet: 3 </div>
<div style="display:none"> Gerrit-Owner: fixeria <axilirator@gmail.com> </div>
<div style="display:none"> Gerrit-Reviewer: Jenkins Builder </div>
<div style="display:none"> Gerrit-Reviewer: fixeria <axilirator@gmail.com> </div>
<div style="display:none"> Gerrit-Reviewer: laforge <laforge@gnumonks.org> </div>
<div style="display:none"> Gerrit-Reviewer: pespin <pespin@sysmocom.de> </div>
<div style="display:none"> Gerrit-MessageType: merged </div>