summaryrefslogtreecommitdiffstats
path: root/openbsc/src/transaction.c
diff options
context:
space:
mode:
Diffstat (limited to 'openbsc/src/transaction.c')
-rw-r--r--openbsc/src/transaction.c23
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++;
}
}