aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMax <msuraev@sysmocom.de>2019-01-10 17:41:05 +0100
committerMax <msuraev@sysmocom.de>2019-01-10 17:41:05 +0100
commit4a5cfa559a674d3012e6e38a8d61d159ebef2ba1 (patch)
tree1c9ab42dfe26391084f860b95cc73962f6b8e577
parent5598aaef23dc42d4f9c1af831c92b939a36961d5 (diff)
Use explicit protocol discriminator for NC SS/USSD session
In gsm0911_rcv_nc_ss() we sometimes use pdisc parsed from msgb and sometimes constant. This function is only called when protocol discriminator is GSM48_PDISC_NC_SS so there's no point in parsing it again from msgb. Let's make it consistent and always use constant. Change-Id: Iae40bf9906fe676ff817c709120015fca4c9e042
-rw-r--r--src/libmsc/gsm_09_11.c11
1 files changed, 5 insertions, 6 deletions
diff --git a/src/libmsc/gsm_09_11.c b/src/libmsc/gsm_09_11.c
index 3ee6e9247..12bec9db8 100644
--- a/src/libmsc/gsm_09_11.c
+++ b/src/libmsc/gsm_09_11.c
@@ -60,11 +60,10 @@ int gsm0911_rcv_nc_ss(struct ran_conn *conn, struct msgb *msg)
struct msgb *gsup_msgb;
uint16_t facility_ie_len;
uint8_t *facility_ie;
- uint8_t pdisc, tid;
+ uint8_t tid;
uint8_t msg_type;
int rc;
- pdisc = gsm48_hdr_pdisc(gh);
msg_type = gsm48_hdr_msg_type(gh);
tid = gsm48_hdr_trans_id_flip_ti(gh);
@@ -72,10 +71,10 @@ int gsm0911_rcv_nc_ss(struct ran_conn *conn, struct msgb *msg)
log_set_context(LOG_CTX_VLR_SUBSCR, conn->vsub);
DEBUGP(DMM, "Received SS/USSD data (trans_id=%x, msg_type=%s)\n",
- tid, gsm48_pdisc_msgtype_name(pdisc, msg_type));
+ tid, gsm48_pdisc_msgtype_name(GSM48_PDISC_NC_SS, msg_type));
/* Reuse existing transaction, or create a new one */
- trans = trans_find_by_id(conn, pdisc, tid);
+ trans = trans_find_by_id(conn, GSM48_PDISC_NC_SS, tid);
if (!trans) {
/* Count MS-initiated attempts to establish a NC SS/USSD session */
rate_ctr_inc(&conn->network->msc_ctrs->ctr[MSC_CTR_NC_SS_MO_REQUESTS]);
@@ -91,7 +90,7 @@ int gsm0911_rcv_nc_ss(struct ran_conn *conn, struct msgb *msg)
if (msg_type != GSM0480_MTYPE_REGISTER) {
LOGP(DMM, LOGL_ERROR, "Unexpected message (msg_type=%s), "
"transaction is not allocated yet\n",
- gsm48_pdisc_msgtype_name(pdisc, msg_type));
+ gsm48_pdisc_msgtype_name(GSM48_PDISC_NC_SS, msg_type));
gsm48_tx_simple(conn,
GSM48_PDISC_NC_SS | (tid << 4),
GSM0480_MTYPE_RELEASE_COMPLETE);
@@ -100,7 +99,7 @@ int gsm0911_rcv_nc_ss(struct ran_conn *conn, struct msgb *msg)
DEBUGP(DMM, " -> (new transaction)\n");
trans = trans_alloc(conn->network, conn->vsub,
- pdisc, tid, new_callref++);
+ GSM48_PDISC_NC_SS, tid, new_callref++);
if (!trans) {
DEBUGP(DMM, " -> No memory for trans\n");
gsm48_tx_simple(conn,