aboutsummaryrefslogtreecommitdiffstats
path: root/openbsc/src/libmsc/smpp_openbsc.c
diff options
context:
space:
mode:
authorBenoit Bolsee <benoit.bolsee@wtl.be>2017-07-05 11:46:55 +0200
committerHarald Welte <laforge@gnumonks.org>2017-07-08 10:45:08 +0000
commit21a7523fcffc0f83587f50f178c41cbed65ef9b6 (patch)
tree3837959af040688184cd8dba06259c0dff7709e8 /openbsc/src/libmsc/smpp_openbsc.c
parent11acfad02a833999c37ee267864d082241a90afb (diff)
smpp: fix return cause
Return cause 38 when default SMPP route is unavailable. This is better than cause 1. Change-Id: If3241d50a78fa611981e55fef6ae4c72b0a2a167
Diffstat (limited to 'openbsc/src/libmsc/smpp_openbsc.c')
-rw-r--r--openbsc/src/libmsc/smpp_openbsc.c9
1 files changed, 5 insertions, 4 deletions
diff --git a/openbsc/src/libmsc/smpp_openbsc.c b/openbsc/src/libmsc/smpp_openbsc.c
index f94968a3f..f7d144191 100644
--- a/openbsc/src/libmsc/smpp_openbsc.c
+++ b/openbsc/src/libmsc/smpp_openbsc.c
@@ -702,17 +702,18 @@ int smpp_try_deliver(struct gsm_sms *sms,
{
struct osmo_esme *esme;
struct osmo_smpp_addr dst;
+ int rc;
memset(&dst, 0, sizeof(dst));
dst.ton = sms->dst.ton;
dst.npi = sms->dst.npi;
memcpy(dst.addr, sms->dst.addr, sizeof(dst.addr));
- esme = smpp_route(g_smsc, &dst);
- if (!esme)
- return GSM411_RP_CAUSE_MO_NUM_UNASSIGNED;
+ rc = smpp_route(g_smsc, &dst, &esme);
+ if (!rc)
+ rc = deliver_to_esme(esme, sms, conn, deferred);
- return deliver_to_esme(esme, sms, conn, deferred);
+ return rc;
}
struct smsc *smsc_from_vty(struct vty *v)