diff options
author | Vadim Yanitskiy <axilirator@gmail.com> | 2019-01-23 23:34:31 +0700 |
---|---|---|
committer | Vadim Yanitskiy <axilirator@gmail.com> | 2019-02-01 18:55:54 +0000 |
commit | cfd058dbf153ee95a9338fe1966eead3a6189238 (patch) | |
tree | d8733d012264e101f2824ca17df5e247172a1018 | |
parent | 36c44b210059bd75059008913ad05976dfef7d7e (diff) |
libmsc/gsm_04_11.c: also assign SM-RP-MR to MO transactions
Previously, SM-RP Message Reference was assigned to MT transactions
only, but not to MO transactions. As a result, this could lead to
having a few transactions with duplicate SM-RP-MR value, because
in case of MO SMS, trans->sms.sm_rp_mr would remain 0x00.
Let's parse SM-RP-MR from MO SMS messages in gsm0411_rcv_sms(),
and assign it to the new transaction after allocation.
Change-Id: I4d07354175444f9764fb0dd6ea188a64494d79fe
-rw-r--r-- | src/libmsc/gsm_04_11.c | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/src/libmsc/gsm_04_11.c b/src/libmsc/gsm_04_11.c index 4dc07bd65..2f39b0656 100644 --- a/src/libmsc/gsm_04_11.c +++ b/src/libmsc/gsm_04_11.c @@ -1179,6 +1179,7 @@ int gsm0411_rcv_sms(struct ran_conn *conn, struct gsm48_hdr *gh = msgb_l3(msg); uint8_t msg_type = gh->msg_type; uint8_t transaction_id = gsm48_hdr_trans_id_flip_ti(gh); + struct gsm411_rp_hdr *rph = (struct gsm411_rp_hdr *) gh->data; struct gsm_trans *trans; int new_trans = 0; int rc = 0; @@ -1210,6 +1211,7 @@ int gsm0411_rcv_sms(struct ran_conn *conn, return -ENOMEM; } + trans->sms.sm_rp_mr = rph->msg_ref; /* SM-RP Message Reference */ trans->dlci = OMSC_LINKID_CB(msg); /* DLCI as received from BSC */ new_trans = 1; |