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/transaction.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/transaction.c')
-rw-r--r-- | openbsc/src/transaction.c | 23 |
1 files changed, 12 insertions, 11 deletions
diff --git a/openbsc/src/transaction.c b/openbsc/src/transaction.c index 4b586a637..bd2761b5f 100644 --- a/openbsc/src/transaction.c +++ b/openbsc/src/transaction.c @@ -96,13 +96,13 @@ void trans_free(struct gsm_trans *trans) break; } - if (!trans->lchan && trans->subscr && trans->subscr->net) { + if (!trans->conn && trans->subscr && trans->subscr->net) { /* Stop paging on all bts' */ paging_request_stop(NULL, trans->subscr, NULL); } - if (trans->lchan) - put_lchan(trans->lchan, 0); + if (trans->conn) + put_subscr_con(trans->conn, 0); if (trans->subscr) subscr_put(trans->subscr); @@ -149,21 +149,22 @@ int trans_assign_trans_id(struct gsm_subscriber *subscr, /* update all transactions to use a different LCHAN, e.g. * after handover has succeeded */ -int trans_lchan_change(struct gsm_lchan *lchan_old, - struct gsm_lchan *lchan_new) +int trans_lchan_change(struct gsm_subscriber_connection *conn_old, + struct gsm_subscriber_connection *conn_new) { - struct gsm_network *net = lchan_old->ts->trx->bts->network; + struct gsm_network *net = conn_old->lchan->ts->trx->bts->network; struct gsm_trans *trans; int num = 0; llist_for_each_entry(trans, &net->trans_list, entry) { - if (trans->lchan == lchan_old) { - /* drop old channel use cound */ - put_lchan(trans->lchan, 0); + if (trans->conn == conn_old) { + + /* drop old channel use count */ + put_subscr_con(conn_old, 0); /* assign new channel */ - trans->lchan = lchan_new; + trans->conn = conn_new; /* bump new channel use count */ - use_lchan(trans->lchan); + use_subscr_con(conn_new); num++; } } |