aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHolger Hans Peter Freyther <zecke@selfish.org>2010-12-25 14:50:50 +0100
committerHolger Hans Peter Freyther <zecke@selfish.org>2010-12-26 09:40:30 +0100
commit994dcbb2017c91b4e8b3a48a93ced215a7d63159 (patch)
treec55672cfae71034a4b2a10c86bb825d933dcdde3
parent7e59c83d66a7deac3371d62a779a3544dfb1524e (diff)
sms: Allow setting amount of failures through the vty.
-rw-r--r--openbsc/include/openbsc/sms_queue.h1
-rw-r--r--openbsc/src/sms_queue.c8
-rw-r--r--openbsc/src/vty_interface_layer3.c12
3 files changed, 21 insertions, 0 deletions
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;
}