sms: Add vty command to clear the pending message

This commit is contained in:
Holger Hans Peter Freyther 2010-12-25 14:38:30 +01:00
parent 3c6f6c25a6
commit 4dcc5e5f8a
3 changed files with 26 additions and 0 deletions

View File

@ -11,5 +11,6 @@ int sms_queue_trigger(struct gsm_sms_queue *);
/* vty helper functions */
int sms_queue_stats(struct gsm_sms_queue *, struct vty* vty);
int sms_queue_set_max_pending(struct gsm_sms_queue *, int max);
int sms_queue_clear(struct gsm_sms_queue *);
#endif

View File

@ -415,3 +415,16 @@ int sms_queue_set_max_pending(struct gsm_sms_queue *smsq, int max_pending)
smsq->max_pending = max_pending;
return 0;
}
int sms_queue_clear(struct gsm_sms_queue *smsq)
{
struct gsm_sms_pending *pending, *tmp;
llist_for_each_entry_safe(pending, tmp, &smsq->pending_sms, entry) {
LOGP(DSMS, LOGL_NOTICE,
"SMSqueue clearing for sub %llu\n", pending->subscr->id);
sms_pending_free(pending);
}
return 0;
}

View File

@ -667,6 +667,17 @@ DEFUN(smsqueue_max,
return CMD_SUCCESS;
}
DEFUN(smsqueue_clear,
smsqueue_clear_cmd,
"sms-queue clear",
"SMS Queue\n" "Clear the queue of pending SMS\n")
{
struct gsm_network *net = gsmnet_from_vty(vty);
sms_queue_clear(net->sms_queue);
return CMD_SUCCESS;
}
int bsc_vty_init_extra(void)
{
register_signal_handler(SS_SCALL, scall_cbfn, NULL);
@ -692,6 +703,7 @@ int bsc_vty_init_extra(void)
install_element(ENABLE_NODE, &subscriber_purge_cmd);
install_element(ENABLE_NODE, &smsqueue_trigger_cmd);
install_element(ENABLE_NODE, &smsqueue_max_cmd);
install_element(ENABLE_NODE, &smsqueue_clear_cmd);
return 0;
}