aboutsummaryrefslogtreecommitdiffstats
path: root/openbsc/src
diff options
context:
space:
mode:
authorJacob Erlbeck <jerlbeck@sysmocom.de>2014-12-02 14:22:53 +0100
committerHolger Hans Peter Freyther <holger@moiji-mobile.com>2014-12-09 08:59:29 +0100
commitaf792d6bb272e14585d26c6c488d592b20fcf9c4 (patch)
treea349db09e222a2235d3e8edd06aded648680cf08 /openbsc/src
parent8ff3fb04f2e3ea192cb337c8a6dcee19fe40060a (diff)
msc: Add net parameter to trans_alloc
The trans_alloc function still uses the subscr object to access the network object. This patch adds an explicit net parameter to this function and removes the access to subscr to obtain it. Sponsored-by: On-Waves ehf
Diffstat (limited to 'openbsc/src')
-rw-r--r--openbsc/src/libmsc/gsm_04_08.c5
-rw-r--r--openbsc/src/libmsc/gsm_04_11.c6
-rw-r--r--openbsc/src/libmsc/transaction.c4
3 files changed, 9 insertions, 6 deletions
diff --git a/openbsc/src/libmsc/gsm_04_08.c b/openbsc/src/libmsc/gsm_04_08.c
index ede6db389..ac1e9169e 100644
--- a/openbsc/src/libmsc/gsm_04_08.c
+++ b/openbsc/src/libmsc/gsm_04_08.c
@@ -3078,7 +3078,7 @@ int mncc_tx_to_cc(struct gsm_network *net, int msg_type, void *arg)
GSM48_CC_CAUSE_DEST_OOO);
}
/* Create transaction */
- trans = trans_alloc(subscr, GSM48_PDISC_CC, 0xff, data->callref);
+ trans = trans_alloc(net, subscr, GSM48_PDISC_CC, 0xff, data->callref);
if (!trans) {
DEBUGP(DCC, "No memory for trans.\n");
subscr_put(subscr);
@@ -3262,7 +3262,8 @@ static int gsm0408_rcv_cc(struct gsm_subscriber_connection *conn, struct msgb *m
DEBUGP(DCC, "Unknown transaction ID %x, "
"creating new trans.\n", transaction_id);
/* Create transaction */
- trans = trans_alloc(conn->subscr, GSM48_PDISC_CC,
+ trans = trans_alloc(conn->bts->network, conn->subscr,
+ GSM48_PDISC_CC,
transaction_id, new_callref++);
if (!trans) {
DEBUGP(DCC, "No memory for trans.\n");
diff --git a/openbsc/src/libmsc/gsm_04_11.c b/openbsc/src/libmsc/gsm_04_11.c
index bc9d59e71..9941e6b2a 100644
--- a/openbsc/src/libmsc/gsm_04_11.c
+++ b/openbsc/src/libmsc/gsm_04_11.c
@@ -765,7 +765,8 @@ int gsm0411_rcv_sms(struct gsm_subscriber_connection *conn,
if (!trans) {
DEBUGP(DLSMS, " -> (new transaction)\n");
- trans = trans_alloc(conn->subscr, GSM48_PDISC_SMS,
+ trans = trans_alloc(conn->bts->network, conn->subscr,
+ GSM48_PDISC_SMS,
transaction_id, new_callref++);
if (!trans) {
DEBUGP(DLSMS, " -> No memory for trans\n");
@@ -838,7 +839,8 @@ int gsm411_send_sms(struct gsm_subscriber_connection *conn, struct gsm_sms *sms)
DEBUGP(DLSMS, "send_sms_lchan()\n");
/* FIXME: allocate transaction with message reference */
- trans = trans_alloc(conn->subscr, GSM48_PDISC_SMS,
+ trans = trans_alloc(conn->bts->network, conn->subscr,
+ GSM48_PDISC_SMS,
transaction_id, new_callref++);
if (!trans) {
LOGP(DLSMS, LOGL_ERROR, "No memory for trans\n");
diff --git a/openbsc/src/libmsc/transaction.c b/openbsc/src/libmsc/transaction.c
index 5621067c0..2101ae96c 100644
--- a/openbsc/src/libmsc/transaction.c
+++ b/openbsc/src/libmsc/transaction.c
@@ -61,12 +61,12 @@ struct gsm_trans *trans_find_by_callref(struct gsm_network *net,
return NULL;
}
-struct gsm_trans *trans_alloc(struct gsm_subscriber *subscr,
+struct gsm_trans *trans_alloc(struct gsm_network *net,
+ struct gsm_subscriber *subscr,
uint8_t protocol, uint8_t trans_id,
uint32_t callref)
{
struct gsm_trans *trans;
- struct gsm_network *net = subscr->group->net;
DEBUGP(DCC, "subscr=%p, net=%p\n", subscr, net);