aboutsummaryrefslogtreecommitdiffstats
path: root/src/libmsc/gsm_09_11.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/libmsc/gsm_09_11.c')
-rw-r--r--src/libmsc/gsm_09_11.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/src/libmsc/gsm_09_11.c b/src/libmsc/gsm_09_11.c
index 2c5afb32f..9b0a9e446 100644
--- a/src/libmsc/gsm_09_11.c
+++ b/src/libmsc/gsm_09_11.c
@@ -107,6 +107,9 @@ int gsm0911_rcv_nc_ss(struct gsm_subscriber_connection *conn, struct msgb *msg)
return -ENOMEM;
}
+ /* Count active NC SS/USSD sessions */
+ osmo_counter_inc(conn->network->active_nc_ss);
+
trans->conn = msc_subscr_conn_get(conn, MSC_CONN_USE_TRANS_NC_SS);
trans->dlci = OMSC_LINKID_CB(msg);
cm_service_request_concludes(conn, msg);
@@ -300,6 +303,9 @@ static struct gsm_trans *establish_nc_ss_trans(struct gsm_network *net,
return NULL;
}
+ /* Count active NC SS/USSD sessions */
+ osmo_counter_inc(net->active_nc_ss);
+
/* Assign transaction ID */
tid = trans_assign_trans_id(trans->net,
trans->vsub, GSM48_PDISC_NC_SS, 0);
@@ -365,6 +371,9 @@ void _gsm911_nc_ss_trans_free(struct gsm_trans *trans)
*/
if (trans->ss.msg != NULL)
msgb_free(trans->ss.msg);
+
+ /* One session less */
+ osmo_counter_dec(trans->net->active_nc_ss);
}
int gsm0911_gsup_handler(struct vlr_subscr *vsub,