summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHarald Welte <laforge@gnumonks.org>2013-07-30 22:30:24 +0800
committerHolger Hans Peter Freyther <holger@moiji-mobile.com>2013-08-03 19:20:36 +0200
commit1aeb2af75d27fdb4ab31d145ec49e84e29ecd501 (patch)
tree2d5b2cd1edacd0deaaa8191c3751f25409f83364
parent14d1177735bb751aa9e2796c58c1d746a5b0de9c (diff)
SMPP: don't get stuck in case of SMS memory exceeded
If the MS memory for SMS is exceeded and we get an RP-layer error, we need to report that back to the (transaction-mode) ESME. Otherwise the ESME will wait forever after sending a SUBMIT-SM without ever receiving a response to it. Thanks to Holger for catching this.
-rw-r--r--openbsc/src/libmsc/smpp_openbsc.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/openbsc/src/libmsc/smpp_openbsc.c b/openbsc/src/libmsc/smpp_openbsc.c
index 8e0085d..eb1ac11 100644
--- a/openbsc/src/libmsc/smpp_openbsc.c
+++ b/openbsc/src/libmsc/smpp_openbsc.c
@@ -259,6 +259,10 @@ static int smpp_sms_cb(unsigned int subsys, unsigned int signal,
return 0;
switch (signal) {
+ case S_SMS_MEM_EXCEEDED:
+ /* fall-through: There is no ESME_Rxxx result code to
+ * indicate a MEMORY EXCEEDED in transaction mode back
+ * to the ESME */
case S_SMS_UNKNOWN_ERROR:
if (sms->smpp.transaction_mode) {
/* Send back the SUBMIT-SM response with apropriate error */