From bddd152049c26a92dc8eb22e18a528eb88df4ed0 Mon Sep 17 00:00:00 2001 From: Holger Hans Peter Freyther Date: Wed, 16 Jun 2010 14:02:41 +0800 Subject: [PATCH] bsc_api: Operate on the subscriber connection for subscriber management --- openbsc/include/openbsc/gsm_subscriber.h | 2 +- openbsc/src/gsm_04_11.c | 4 ++-- openbsc/src/gsm_subscriber_base.c | 7 +++---- 3 files changed, 6 insertions(+), 7 deletions(-) diff --git a/openbsc/include/openbsc/gsm_subscriber.h b/openbsc/include/openbsc/gsm_subscriber.h index 06539960e..527056bf2 100644 --- a/openbsc/include/openbsc/gsm_subscriber.h +++ b/openbsc/include/openbsc/gsm_subscriber.h @@ -82,7 +82,7 @@ struct gsm_subscriber *subscr_get_by_extension(struct gsm_network *net, struct gsm_subscriber *subscr_get_by_id(struct gsm_network *net, unsigned long long id); int subscr_update(struct gsm_subscriber *s, struct gsm_bts *bts, int reason); -void subscr_put_channel(struct gsm_lchan *lchan); +void subscr_put_channel(struct gsm_subscriber_connection *conn); void subscr_get_channel(struct gsm_subscriber *subscr, int type, gsm_cbfn *cbfn, void *param); diff --git a/openbsc/src/gsm_04_11.c b/openbsc/src/gsm_04_11.c index 9d6533383..dbb1fb56d 100644 --- a/openbsc/src/gsm_04_11.c +++ b/openbsc/src/gsm_04_11.c @@ -124,10 +124,10 @@ void sms_free(struct gsm_sms *sms) */ static void gsm411_release_conn(struct gsm_subscriber_connection *conn) { - if (!conn->lchan) + if (!conn) return; - subscr_put_channel(conn->lchan); + subscr_put_channel(conn); } struct msgb *gsm411_msgb_alloc(void) diff --git a/openbsc/src/gsm_subscriber_base.c b/openbsc/src/gsm_subscriber_base.c index c0d1261b4..264f12855 100644 --- a/openbsc/src/gsm_subscriber_base.c +++ b/openbsc/src/gsm_subscriber_base.c @@ -185,9 +185,8 @@ void subscr_get_channel(struct gsm_subscriber *subscr, } } -void subscr_put_channel(struct gsm_lchan *lchan) +void subscr_put_channel(struct gsm_subscriber_connection *conn) { - struct gsm_subscriber_connection *conn = &lchan->conn; /* * FIXME: Continue with other requests now... by checking * the gsm_subscriber inside the gsm_lchan. Drop the ref count @@ -208,7 +207,7 @@ void subscr_put_channel(struct gsm_lchan *lchan) put_subscr_con(conn); - if (lchan->conn.subscr && !llist_empty(&lchan->conn.subscr->requests)) - subscr_send_paging_request(lchan->conn.subscr); + if (conn->subscr && !llist_empty(&conn->subscr->requests)) + subscr_send_paging_request(conn->subscr); }