diff options
author | Harald Welte <laforge@gnumonks.org> | 2009-07-04 10:38:11 +0200 |
---|---|---|
committer | Harald Welte <laforge@gnumonks.org> | 2009-07-04 10:38:11 +0200 |
commit | 6c1a21367b12a4347e28513b0f796700479f4e1f (patch) | |
tree | 21f372da18c322f39a992c541bf45b14ce445e6a | |
parent | 8a396b73e163b7afc357053208f49de3d5d6a16d (diff) | |
parent | 24516ea2d6623a7b0802558ad241aa962217c65e (diff) |
Merge branch 'master' into sms
-rw-r--r-- | openbsc/src/abis_rsl.c | 9 | ||||
-rw-r--r-- | openbsc/src/gsm_04_08.c | 16 | ||||
-rw-r--r-- | openbsc/src/input/misdn.c | 1 |
3 files changed, 13 insertions, 13 deletions
diff --git a/openbsc/src/abis_rsl.c b/openbsc/src/abis_rsl.c index c2ef9e5cf..3495e6c4d 100644 --- a/openbsc/src/abis_rsl.c +++ b/openbsc/src/abis_rsl.c @@ -811,10 +811,8 @@ static int rsl_rx_conn_fail(struct msgb *msg) if (TLVP_PRESENT(&tp, RSL_IE_CAUSE) && TLVP_LEN(&tp, RSL_IE_CAUSE) >= 1 && *TLVP_VAL(&tp, RSL_IE_CAUSE) == 0x18) { - if (msg->lchan->use_count > 0) { - DEBUGPC(DRSL, "Cause 0x18 IGNORING, lchan in use! (%d times)\n", msg->lchan->use_count); - return 0; - } + DEBUGPC(DRSL, "Cause 0x18 IGNORING\n"); + return 0; } } @@ -1106,6 +1104,9 @@ static int rsl_rx_rll_err_ind(struct msgb *msg) DEBUGPC(DRLL, "cause=0x%02x", rlm_cause[1]); + if (rlm_cause[1] == RLL_CAUSE_T200_EXPIRED) + return rsl_chan_release(msg->lchan); + return 0; } diff --git a/openbsc/src/gsm_04_08.c b/openbsc/src/gsm_04_08.c index dc70c866a..2312e8abe 100644 --- a/openbsc/src/gsm_04_08.c +++ b/openbsc/src/gsm_04_08.c @@ -385,7 +385,7 @@ static int gsm0408_handle_lchan_signal(unsigned int subsys, unsigned int signal, * Cancel any outstanding location updating request * operation taking place on the lchan. */ - struct gsm_lchan *lchan = (struct gsm_lchan *)handler_data; + struct gsm_lchan *lchan = (struct gsm_lchan *)signal_data; if (!lchan) return 0; @@ -1256,6 +1256,9 @@ static int mm_rx_loc_upd_req(struct msgb *msg) break; } + /* schedule the reject timer */ + schedule_reject(lchan); + if (!subscr) { DEBUGPC(DRR, "<- Can't find any subscriber for this ID\n"); /* FIXME: request id? close channel? */ @@ -1264,12 +1267,8 @@ static int mm_rx_loc_upd_req(struct msgb *msg) lchan->subscr = subscr; - /* - * Schedule the reject timer and check if we can let the - * subscriber into our network immediately or if we need to wait - * for identity responses. - */ - schedule_reject(lchan); + /* check if we can let the subscriber into our network immediately + * or if we need to wait for identity responses. */ return gsm0408_authorize(lchan, msg); } @@ -3381,8 +3380,7 @@ int mncc_send(struct gsm_network *net, int msg_type, void *arg) /* Callref unknown */ if (!trans) { - if (msg_type != MNCC_SETUP_REQ || - (!data->called.number[0] && !data->imsi[0])) { + if (msg_type != MNCC_SETUP_REQ) { DEBUGP(DCC, "(bts - trx - ts - ti -- sub %s) " "Received '%s' from MNCC with " "unknown callref %d\n", data->called.number, diff --git a/openbsc/src/input/misdn.c b/openbsc/src/input/misdn.c index 367d8e4a6..a04c2abd7 100644 --- a/openbsc/src/input/misdn.c +++ b/openbsc/src/input/misdn.c @@ -154,6 +154,7 @@ static int handle_ts1_read(struct bsc_fd *bfd) ret = e1inp_event(e1i_ts, EVT_E1_TEI_DN, l2addr.tei, l2addr.sapi); break; case DL_DATA_IND: + case DL_UNITDATA_IND: msg->l2h = msg->data + MISDN_HEADER_LEN; DEBUGP(DMI, "RX: %s\n", hexdump(msgb_l2(msg), ret - MISDN_HEADER_LEN)); ret = e1inp_rx_ts(e1i_ts, msg, l2addr.tei, l2addr.sapi); |