diff options
author | Vadim Yanitskiy <axilirator@gmail.com> | 2019-06-15 17:30:23 +0700 |
---|---|---|
committer | Vadim Yanitskiy <axilirator@gmail.com> | 2019-06-17 21:06:43 +0700 |
commit | 805eca2b3eaaf57cdecca0991e7236b5e5f9edf6 (patch) | |
tree | 0f2e2a23148aa6bbe899b679897a94268ab7f868 | |
parent | 95b040c45a7f5c0b9ba5c27df6f7bd49ee79307a (diff) |
libmsc/msc_net_init.c: pass pointer to gsm_network directly
Change-Id: I122d2880b356997c60df5f0cf4f5ecb3abb2e672
-rw-r--r-- | src/libmsc/gsm_04_11_gsup.c | 26 | ||||
-rw-r--r-- | src/libmsc/gsm_09_11.c | 13 | ||||
-rw-r--r-- | src/libmsc/msc_net_init.c | 4 |
3 files changed, 12 insertions, 31 deletions
diff --git a/src/libmsc/gsm_04_11_gsup.c b/src/libmsc/gsm_04_11_gsup.c index b4d74c7dd..331092ab6 100644 --- a/src/libmsc/gsm_04_11_gsup.c +++ b/src/libmsc/gsm_04_11_gsup.c @@ -117,19 +117,13 @@ int gsm411_gsup_mo_ready_for_sm_req(struct gsm_trans *trans, uint8_t sm_rp_mr) } /* Triggers either RP-ACK or RP-ERROR on response from SMSC */ -static int gsm411_gsup_mo_handler(struct vlr_subscr *vsub, - const struct osmo_gsup_message *gsup_msg) +static int gsm411_gsup_mo_handler(struct gsm_network *net, struct vlr_subscr *vsub, + const struct osmo_gsup_message *gsup_msg) { - struct vlr_instance *vlr; - struct gsm_network *net; struct gsm_trans *trans; const char *msg_name; bool msg_is_err; - /* Obtain required pointers */ - vlr = vsub->vlr; - net = (struct gsm_network *) vlr->user_ctx; - /* Associate logging messages with this subscriber */ log_set_context(LOG_CTX_VLR_SUBSCR, vsub); @@ -230,16 +224,12 @@ int gsm411_gsup_mt_fwd_sm_err(struct gsm_trans *trans, } /* Handles MT SMS (and triggers Paging Request if required) */ -static int gsm411_gsup_mt_handler(struct vlr_subscr *vsub, - const struct osmo_gsup_message *gsup_msg) +static int gsm411_gsup_mt_handler(struct gsm_network *net, struct vlr_subscr *vsub, + const struct osmo_gsup_message *gsup_msg) { - struct gsm_network *net; bool sm_rp_mmts_ind; int rc; - /* Obtain required pointers */ - net = (struct gsm_network *) vsub->vlr->user_ctx; - /* Associate logging messages with this subscriber */ log_set_context(LOG_CTX_VLR_SUBSCR, vsub); @@ -296,8 +286,8 @@ msg_error: int gsm411_gsup_rx(struct gsup_client_mux *gcm, void *data, const struct osmo_gsup_message *gsup_msg) { - struct vlr_instance *vlr = data; - struct vlr_subscr *vsub = vlr_subscr_find_by_imsi(vlr, gsup_msg->imsi, __func__); + struct gsm_network *net = (struct gsm_network *) data; + struct vlr_subscr *vsub = vlr_subscr_find_by_imsi(net->vlr, gsup_msg->imsi, __func__); if (!vsub) { LOGP(DLSMS, LOGL_ERROR, "Rx %s for unknown subscriber, rejecting\n", @@ -313,12 +303,12 @@ int gsm411_gsup_rx(struct gsup_client_mux *gcm, void *data, const struct osmo_gs case OSMO_GSUP_MSGT_READY_FOR_SM_ERROR: case OSMO_GSUP_MSGT_READY_FOR_SM_RESULT: DEBUGP(DMSC, "Routed to GSM 04.11 MO handler\n"); - return gsm411_gsup_mo_handler(vsub, gsup_msg); + return gsm411_gsup_mo_handler(net, vsub, gsup_msg); /* GSM 04.11 code implementing MT SMS */ case OSMO_GSUP_MSGT_MT_FORWARD_SM_REQUEST: DEBUGP(DMSC, "Routed to GSM 04.11 MT handler\n"); - return gsm411_gsup_mt_handler(vsub, gsup_msg); + return gsm411_gsup_mt_handler(net, vsub, gsup_msg); default: LOGP(DMM, LOGL_ERROR, "No handler found for %s, dropping message...\n", diff --git a/src/libmsc/gsm_09_11.c b/src/libmsc/gsm_09_11.c index f85c3f662..51cb2fb85 100644 --- a/src/libmsc/gsm_09_11.c +++ b/src/libmsc/gsm_09_11.c @@ -402,14 +402,13 @@ void _gsm911_nc_ss_trans_free(struct gsm_trans *trans) int gsm0911_gsup_rx(struct gsup_client_mux *gcm, void *data, const struct osmo_gsup_message *gsup_msg) { - struct vlr_instance *vlr = data; - struct gsm_network *net; + struct gsm_network *net = (struct gsm_network *) data; struct gsm_trans *trans; struct gsm48_hdr *gh; struct msgb *ss_msg; bool trans_end; struct msc_a *msc_a; - struct vlr_subscr *vsub = vlr_subscr_find_by_imsi(vlr, gsup_msg->imsi, __func__); + struct vlr_subscr *vsub = vlr_subscr_find_by_imsi(net->vlr, gsup_msg->imsi, __func__); if (!vsub) { LOGP(DSS, LOGL_ERROR, "Rx %s for unknown subscriber, rejecting\n", @@ -421,14 +420,6 @@ int gsm0911_gsup_rx(struct gsup_client_mux *gcm, void *data, const struct osmo_g /* Associate logging messages with this subscriber */ log_set_context(LOG_CTX_VLR_SUBSCR, vsub); - /* Obtain pointer to vlr_instance */ - vlr = vsub->vlr; - OSMO_ASSERT(vlr); - - /* Obtain pointer to gsm_network */ - net = (struct gsm_network *) vlr->user_ctx; - OSMO_ASSERT(net); - /* Handle errors */ if (OSMO_GSUP_IS_MSGT_ERROR(gsup_msg->message_type)) { /* FIXME: handle this error somehow! */ diff --git a/src/libmsc/msc_net_init.c b/src/libmsc/msc_net_init.c index 637ee74ea..4a752bf76 100644 --- a/src/libmsc/msc_net_init.c +++ b/src/libmsc/msc_net_init.c @@ -117,8 +117,8 @@ int msc_gsup_client_start(struct gsm_network *net) .rx_cb = { /* vlr.c sets up its own cb and data */ /* MSC-A and MSC-B set up their own cb and data */ - [OSMO_GSUP_MESSAGE_CLASS_SMS] = { .func = gsm411_gsup_rx, .data = net->vlr }, - [OSMO_GSUP_MESSAGE_CLASS_USSD] = { .func = gsm0911_gsup_rx, .data = net->vlr }, + [OSMO_GSUP_MESSAGE_CLASS_SMS] = { .func = gsm411_gsup_rx, .data = net }, + [OSMO_GSUP_MESSAGE_CLASS_USSD] = { .func = gsm0911_gsup_rx, .data = net }, }, }; |