diff options
author | Holger Hans Peter Freyther <zecke@selfish.org> | 2010-04-06 21:49:41 +0200 |
---|---|---|
committer | Holger Hans Peter Freyther <zecke@selfish.org> | 2010-04-06 21:51:26 +0200 |
commit | 9960d59fffa176ab022c9641c7358030d7f8065c (patch) | |
tree | 18573b4edf3eb496307d4b33d99ca031c98c3981 /openbsc/src/silent_call.c | |
parent | 161bd6d253abeef6b181dbe9fdd245bd7c9884af (diff) | |
parent | 3c71232b112a40bf09bd9687f1bc6aed12e863a3 (diff) |
Merge remote branch 'origin/master' into on-waves/bsc-master
* Move to the new log code and update binaries
* Catch up with lchan changes from master
Conflicts:
openbsc/include/openbsc/Makefile.am
openbsc/include/openbsc/gsm_data.h
openbsc/src/Makefile.am
openbsc/src/bsc_rll.c
openbsc/src/chan_alloc.c
openbsc/src/debug.c
openbsc/src/gsm_04_08.c
openbsc/src/gsm_04_11.c
openbsc/src/gsm_subscriber_base.c
openbsc/src/handover_logic.c
openbsc/src/silent_call.c
openbsc/src/transaction.c
openbsc/src/vty_interface.c
openbsc/src/vty_interface_cmds.c
Diffstat (limited to 'openbsc/src/silent_call.c')
-rw-r--r-- | openbsc/src/silent_call.c | 15 |
1 files changed, 10 insertions, 5 deletions
diff --git a/openbsc/src/silent_call.c b/openbsc/src/silent_call.c index f81bdc51e..85c7f8987 100644 --- a/openbsc/src/silent_call.c +++ b/openbsc/src/silent_call.c @@ -38,6 +38,7 @@ static int paging_cb_silent(unsigned int hooknum, unsigned int event, struct msgb *msg, void *_lchan, void *_data) { + struct gsm_subscriber_connection *conn; struct gsm_lchan *lchan = _lchan; struct scall_signal_data sigdata; int rc; @@ -47,6 +48,8 @@ static int paging_cb_silent(unsigned int hooknum, unsigned int event, DEBUGP(DSMS, "paging_cb_silent: "); + conn = &lchan->conn; + sigdata.lchan = lchan; sigdata.data = _data; @@ -54,10 +57,10 @@ static int paging_cb_silent(unsigned int hooknum, unsigned int event, case GSM_PAGING_SUCCEEDED: DEBUGPC(DSMS, "success, using Timeslot %u on ARFCN %u\n", lchan->ts->nr, lchan->ts->trx->arfcn); - lchan->silent_call = 1; + conn->silent_call = 1; /* increment lchan reference count */ dispatch_signal(SS_SCALL, S_SCALL_SUCCESS, &sigdata); - use_lchan(lchan); + use_subscr_con(conn); break; case GSM_PAGING_EXPIRED: DEBUGP(DSMS, "expired\n"); @@ -97,7 +100,7 @@ int silent_call_reroute(struct msgb *msg) int i; /* if we're not part of a silent call, never reroute */ - if (!msg->lchan->silent_call) + if (!msg->lchan->conn.silent_call) return 0; /* check if we are a special message that is handled in openbsc */ @@ -126,16 +129,18 @@ int gsm_silent_call_start(struct gsm_subscriber *subscr, void *data, int type) int gsm_silent_call_stop(struct gsm_subscriber *subscr) { struct gsm_lchan *lchan; + struct gsm_subscriber_connection *conn; lchan = lchan_for_subscr(subscr); if (!lchan) return -EINVAL; /* did we actually establish a silent call for this guy? */ - if (!lchan->silent_call) + conn = &lchan->conn; + if (!conn->silent_call) return -EINVAL; - put_lchan(lchan, 0); + put_subscr_con(conn, 0); return 0; } |