diff options
Diffstat (limited to 'openbsc/src/transaction.c')
-rw-r--r-- | openbsc/src/transaction.c | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/openbsc/src/transaction.c b/openbsc/src/transaction.c index 5e0d50796..bd2761b5f 100644 --- a/openbsc/src/transaction.c +++ b/openbsc/src/transaction.c @@ -28,6 +28,7 @@ #include <openbsc/gsm_04_08.h> #include <openbsc/mncc.h> #include <openbsc/paging.h> +#include <openbsc/chan_alloc.h> void *tall_trans_ctx; @@ -95,14 +96,14 @@ void trans_free(struct gsm_trans *trans) break; } - if (trans->conn) - put_subscr_con(trans->conn); - if (!trans->conn && trans->subscr && trans->subscr->net) { /* Stop paging on all bts' */ paging_request_stop(NULL, trans->subscr, NULL); } + if (trans->conn) + put_subscr_con(trans->conn, 0); + if (trans->subscr) subscr_put(trans->subscr); @@ -159,7 +160,7 @@ int trans_lchan_change(struct gsm_subscriber_connection *conn_old, if (trans->conn == conn_old) { /* drop old channel use count */ - put_subscr_con(conn_old); + put_subscr_con(conn_old, 0); /* assign new channel */ trans->conn = conn_new; /* bump new channel use count */ |