Don't allow rounding seconds to weird values that may cause "unexpected" results.
authorJason Parker <jparker@digium.com>
Mon, 14 May 2007 18:08:54 +0000 (18:08 +0000)
committerJason Parker <jparker@digium.com>
Mon, 14 May 2007 18:08:54 +0000 (18:08 +0000)
Issue 9514.

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@64263 65c4cc65-6c06-0410-ace0-fbb531ad65f3

apps/app_queue.c
configs/queues.conf.sample

index b465848..88a2129 100644 (file)
@@ -859,7 +859,9 @@ static void queue_set_param(struct call_queue *q, const char *param, const char
                ast_log(LOG_DEBUG, "%s=%s for queue '%s'\n", param, val, q->name);
        } else if (!strcasecmp(param, "announce-round-seconds")) {
                q->roundingseconds = atoi(val);
-               if (q->roundingseconds>60 || q->roundingseconds<0) {
+               /* Rounding to any other values just doesn't make sense... */
+               if (!(q->roundingseconds == 0 || q->roundingseconds == 1 || q->roundingseconds == 5 || q->roundingseconds == 10
+                       || q->roundingseconds == 15 || q->roundingseconds == 20 || q->roundingseconds == 30)) {
                        if (linenum >= 0) {
                                ast_log(LOG_WARNING, "'%s' isn't a valid value for %s "
                                        "using 0 instead for queue '%s' at line %d of queues.conf\n",
index 4746308..e5d8131 100644 (file)
@@ -195,6 +195,7 @@ monitor-type = MixMonitor
 ; What's the rounding time for the seconds?
 ; If this is non-zero, then we announce the seconds as well as the minutes
 ; rounded to this value.
+; Value values are 0, 1, 5, 10, 15, 20, and 30.
 ;
 ; announce-round-seconds = 10
 ;