diff options
author | Pablo Neira Ayuso <pablo@gnumonks.org> | 2017-09-10 21:29:12 +0200 |
---|---|---|
committer | Harald Welte <laforge@gnumonks.org> | 2017-09-11 18:39:07 +0000 |
commit | 9051421d75eed22c02f01b373cfab58dbadcd4b5 (patch) | |
tree | 499e6eb06cecdf573f7a855aa9d515a3756ba2e2 /openbsc/src/libmsc/smpp_openbsc.c | |
parent | f52cf145acea5db288543de0f2e886988d5676cf (diff) |
libmsc: annotate esme route in the sms object from deliver_to_esme()
Annotate this esme route, so we can use it to return -EINPROGRESS to
skip sending premature RP-ACK to the mobile station, in case we're
handling sms routes through SMPP.
Now that we have this information in place, we use it wherever possible
to avoid kludgy checks on sms->receiver.
sms_free() already releases references to this object, so we should be
fine with this.
Fixes: 4e5b90a594f9 ("libmsc: remove 'deferred' parameter in sms_route_mt_sms()")
Change-Id: Ib8a8fd9bbb0d3b6aff7931e4bacbea99d000e484
Diffstat (limited to 'openbsc/src/libmsc/smpp_openbsc.c')
-rw-r--r-- | openbsc/src/libmsc/smpp_openbsc.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/openbsc/src/libmsc/smpp_openbsc.c b/openbsc/src/libmsc/smpp_openbsc.c index af2d1be62..3fe2dfd0b 100644 --- a/openbsc/src/libmsc/smpp_openbsc.c +++ b/openbsc/src/libmsc/smpp_openbsc.c @@ -714,6 +714,10 @@ static int deliver_to_esme(struct osmo_esme *esme, struct gsm_sms *sms, if (ret < 0) return ret; + OSMO_ASSERT(!sms->smpp.esme); + smpp_esme_get(esme); + sms->smpp.esme = esme; + return smpp_cmd_enqueue(esme, conn->subscr, sms, deliver.sequence_number); } |