diff options
Diffstat (limited to 'openbsc/src')
-rw-r--r-- | openbsc/src/libmsc/gsm_04_08.c | 5 | ||||
-rw-r--r-- | openbsc/src/libmsc/gsm_04_11.c | 6 | ||||
-rw-r--r-- | openbsc/src/libmsc/transaction.c | 4 |
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); |