From 994dcbb2017c91b4e8b3a48a93ced215a7d63159 Mon Sep 17 00:00:00 2001 From: Holger Hans Peter Freyther Date: Sat, 25 Dec 2010 14:50:50 +0100 Subject: [PATCH] sms: Allow setting amount of failures through the vty. --- openbsc/include/openbsc/sms_queue.h | 1 + openbsc/src/sms_queue.c | 8 ++++++++ openbsc/src/vty_interface_layer3.c | 12 ++++++++++++ 3 files changed, 21 insertions(+) diff --git a/openbsc/include/openbsc/sms_queue.h b/openbsc/include/openbsc/sms_queue.h index 99f4e7bd8..2a8bd5850 100644 --- a/openbsc/include/openbsc/sms_queue.h +++ b/openbsc/include/openbsc/sms_queue.h @@ -11,6 +11,7 @@ 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_set_max_failure(struct gsm_sms_queue *, int fail); int sms_queue_clear(struct gsm_sms_queue *); #endif diff --git a/openbsc/src/sms_queue.c b/openbsc/src/sms_queue.c index c0056c560..89daf1f0f 100644 --- a/openbsc/src/sms_queue.c +++ b/openbsc/src/sms_queue.c @@ -418,6 +418,14 @@ int sms_queue_set_max_pending(struct gsm_sms_queue *smsq, int max_pending) return 0; } +int sms_queue_set_max_failure(struct gsm_sms_queue *smsq, int max_fail) +{ + LOGP(DSMS, LOGL_NOTICE, "SMSqueue max failure old: %d new: %d\n", + smsq->max_fail, max_fail); + smsq->max_fail = max_fail; + return 0; +} + int sms_queue_clear(struct gsm_sms_queue *smsq) { struct gsm_sms_pending *pending, *tmp; diff --git a/openbsc/src/vty_interface_layer3.c b/openbsc/src/vty_interface_layer3.c index e7a2b2fbb..7df0d7b2c 100644 --- a/openbsc/src/vty_interface_layer3.c +++ b/openbsc/src/vty_interface_layer3.c @@ -678,6 +678,17 @@ DEFUN(smsqueue_clear, return CMD_SUCCESS; } +DEFUN(smsqueue_fail, + smsqueue_fail_cmd, + "sms-queue max-failure <1-500>", + "SMS Queue\n" "Set maximum amount of failures\n") +{ + struct gsm_network *net = gsmnet_from_vty(vty); + + sms_queue_set_max_failure(net->sms_queue, atoi(argv[0])); + return CMD_SUCCESS; +} + int bsc_vty_init_extra(void) { register_signal_handler(SS_SCALL, scall_cbfn, NULL); @@ -704,6 +715,7 @@ int bsc_vty_init_extra(void) install_element(ENABLE_NODE, &smsqueue_trigger_cmd); install_element(ENABLE_NODE, &smsqueue_max_cmd); install_element(ENABLE_NODE, &smsqueue_clear_cmd); + install_element(ENABLE_NODE, &smsqueue_fail_cmd); return 0; }