diff options
author | Ivan Kluchnikov <kluchnikovi@gmail.com> | 2015-12-29 19:23:58 +0300 |
---|---|---|
committer | Ivan Kluchnikov <kluchnikovi@gmail.com> | 2017-02-07 18:59:55 +0300 |
commit | c301ef4ea7da9efe0e494c0486ca32eea6d4ec7c (patch) | |
tree | 848f5263aa5000c5fa80597a942483f80449fe01 /openbsc/src/libmsc/gsm_04_11.c | |
parent | 59dc70462b1a92eb329e4994c056076167ce99bb (diff) |
sms: MO RP ACK and RP ERROR should be also forwarded to the sms socket
Diffstat (limited to 'openbsc/src/libmsc/gsm_04_11.c')
-rw-r--r-- | openbsc/src/libmsc/gsm_04_11.c | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/openbsc/src/libmsc/gsm_04_11.c b/openbsc/src/libmsc/gsm_04_11.c index 62b968da9..3f5a2c45b 100644 --- a/openbsc/src/libmsc/gsm_04_11.c +++ b/openbsc/src/libmsc/gsm_04_11.c @@ -600,6 +600,10 @@ static int gsm411_rx_rp_ack(struct msgb *msg, struct gsm_trans *trans, { struct gsm_sms *sms = trans->sms.sms; + if (trans->net->sms_client) { + return subscr_tx_sms_message(trans->subscr, rph); + } + /* Acnkowledgement to MT RP_DATA, i.e. the MS confirms it * successfully received a SMS. We can now safely mark it as * transmitted */ @@ -637,6 +641,15 @@ static int gsm411_rx_rp_error(struct msgb *msg, struct gsm_trans *trans, subscr_name(trans->conn->subscr), cause_len, cause, get_value_string(gsm411_rp_cause_strs, cause)); + if (trans->net->sms_client) { + if (cause == GSM411_RP_CAUSE_MT_MEM_EXCEEDED) { + osmo_counter_inc(net->stats.sms.rp_err_mem); + } else { + osmo_counter_inc(net->stats.sms.rp_err_other); + } + return subscr_tx_sms_message(trans->subscr, rph); + } + if (!sms) { LOGP(DLSMS, LOGL_ERROR, "RX RP-ERR, but no sms in transaction?!?\n"); |