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,18 +1176,21 @@ 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; }