diff options
Diffstat (limited to 'openbsc/src/gsm_04_08.c')
-rw-r--r-- | openbsc/src/gsm_04_08.c | 34 |
1 files changed, 2 insertions, 32 deletions
diff --git a/openbsc/src/gsm_04_08.c b/openbsc/src/gsm_04_08.c index 052991c3b..90b88dfb3 100644 --- a/openbsc/src/gsm_04_08.c +++ b/openbsc/src/gsm_04_08.c @@ -1022,11 +1022,6 @@ static int mm_rx_id_resp(struct msgb *msg) DEBUGP(DMM, "IDENTITY RESPONSE: mi_type=0x%02x MI(%s)\n", mi_type, mi_string); - /* - * Rogue messages could trick us but so is life - */ - put_lchan(lchan); - switch (mi_type) { case GSM_MI_TYPE_IMSI: if (!lchan->subscr) @@ -1116,7 +1111,6 @@ static int mm_rx_loc_upd_req(struct msgb *msg) switch (mi_type) { case GSM_MI_TYPE_IMSI: /* we always want the IMEI, too */ - use_lchan(lchan); rc = mm_tx_identity_req(lchan, GSM_MI_TYPE_IMEI); lchan->loc_operation->waiting_for_imei = 1; @@ -1125,7 +1119,6 @@ static int mm_rx_loc_upd_req(struct msgb *msg) break; case GSM_MI_TYPE_TMSI: /* we always want the IMEI, too */ - use_lchan(lchan); rc = mm_tx_identity_req(lchan, GSM_MI_TYPE_IMEI); lchan->loc_operation->waiting_for_imei = 1; @@ -1133,7 +1126,6 @@ static int mm_rx_loc_upd_req(struct msgb *msg) subscr = subscr_get_by_tmsi(mi_string); if (!subscr) { /* send IDENTITY REQUEST message to get IMSI */ - use_lchan(lchan); rc = mm_tx_identity_req(lchan, GSM_MI_TYPE_IMSI); lchan->loc_operation->waiting_for_imsi = 1; } @@ -1460,7 +1452,6 @@ static int gsm48_rr_rx_pag_resp(struct msgb *msg) u_int8_t mi_type = mi_lv[1] & GSM_MI_TYPE_MASK; char mi_string[MI_SIZE]; struct gsm_subscriber *subscr; - struct gsm_bts *bts; struct paging_signal_data sig_data; int rc = 0; @@ -1508,18 +1499,6 @@ static int gsm48_rr_rx_pag_resp(struct msgb *msg) /* Stop paging on the bts we received the paging response */ paging_request_stop(msg->trx->bts, subscr, msg->lchan); - /* Stop paging on all other bts' */ - bts = NULL; - do { - bts = gsm_bts_by_lac(msg->trx->bts->network, subscr->lac, bts); - if (!bts) - break; - if (bts == msg->trx->bts) - continue; - /* Stop paging */ - paging_request_stop(bts, subscr, NULL); - } while (1); - /* FIXME: somehow signal the completion of the PAGING to * the entity that requested the paging */ @@ -1754,7 +1733,6 @@ static int gsm48_cc_rx_setup(struct msgb *msg) struct gsm48_hdr *gh = msgb_l3(msg); unsigned int payload_len = msgb_l3len(msg) - sizeof(*gh); struct gsm_subscriber *called_subscr; - struct gsm_bts *bts; char called_number[(43-2)*2 + 1] = "\0"; struct tlv_parsed tp; int ret; @@ -1798,16 +1776,8 @@ static int gsm48_cc_rx_setup(struct msgb *msg) call->called_subscr = called_subscr; /* Start paging subscriber on all BTS in LAC of subscriber */ - bts = NULL; - do { - bts = gsm_bts_by_lac(msg->trx->bts->network, - msg->lchan->subscr->lac, bts); - if (!bts) - break; - /* Trigger paging */ - paging_request(bts, called_subscr, RSL_CHANNEED_TCH_F, - setup_trig_pag_evt, call); - } while (1); + subscr_get_channel(called_subscr, msg->trx->bts->network, RSL_CHANNEED_TCH_F, + setup_trig_pag_evt, call); /* send a CALL PROCEEDING message to the MO */ ret = gsm48_tx_simple(msg->lchan, GSM48_PDISC_CC, |