aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHolger Hans Peter Freyther <zecke@selfish.org>2010-06-16 14:02:41 +0800
committerHolger Hans Peter Freyther <zecke@selfish.org>2010-06-16 15:42:40 +0800
commitbddd152049c26a92dc8eb22e18a528eb88df4ed0 (patch)
tree30482ee99e3bbcf81e2fe4438fbe69da0bdd0ab4
parent9ce1b27fbfde5cd7248af3e6ccecbd339b098d1f (diff)
bsc_api: Operate on the subscriber connection for subscriber management
-rw-r--r--openbsc/include/openbsc/gsm_subscriber.h2
-rw-r--r--openbsc/src/gsm_04_11.c4
-rw-r--r--openbsc/src/gsm_subscriber_base.c7
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);
}