aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--openbsc/src/vty_interface.c19
1 files changed, 11 insertions, 8 deletions
diff --git a/openbsc/src/vty_interface.c b/openbsc/src/vty_interface.c
index 4933bb4e9..0dcf0577e 100644
--- a/openbsc/src/vty_interface.c
+++ b/openbsc/src/vty_interface.c
@@ -1176,17 +1176,20 @@ DEFUN(sms_send_pend,
"Send all pending SMS starting from MIN_ID")
{
struct gsm_sms *sms;
+ int id = atoi(argv[0]);
- sms = db_sms_get_unsent(gsmnet, atoi(argv[0]));
- if (!sms)
- return CMD_WARNING;
+ while (1) {
+ sms = db_sms_get_unsent(gsmnet, id++);
+ if (!sms)
+ return CMD_WARNING;
- if (!sms->receiver) {
- sms_free(sms);
- return CMD_WARNING;
- }
+ if (!sms->receiver) {
+ sms_free(sms);
+ continue;
+ }
- gsm411_send_sms_subscr(sms->receiver, sms);
+ gsm411_send_sms_subscr(sms->receiver, sms);
+ }
return CMD_SUCCESS;
}