Enable warnings on atypical conditions for the FILTER function (suggested by mmichels...
authorTilghman Lesher <tilghman@meg.abyt.es>
Wed, 10 Feb 2010 15:36:57 +0000 (15:36 +0000)
committerTilghman Lesher <tilghman@meg.abyt.es>
Wed, 10 Feb 2010 15:36:57 +0000 (15:36 +0000)
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@246022 65c4cc65-6c06-0410-ace0-fbb531ad65f3

funcs/func_strings.c

index 34bff1e..faf0ce2 100644 (file)
@@ -603,6 +603,10 @@ static int filter(struct ast_channel *chan, const char *cmd, char *parse, char *
                return -1;
        }
 
+       if (args.allowed[0] == '"' && !ast_opt_dont_warn) {
+               ast_log(LOG_WARNING, "FILTER allowed characters includes the quote (\") character.  This may not be what you want.\n");
+       }
+
        /* Expand ranges */
        for (; *(args.allowed) && allowedlen < sizeof(allowed); ) {
                char c1 = 0, c2 = 0;
@@ -617,6 +621,10 @@ static int filter(struct ast_channel *chan, const char *cmd, char *parse, char *
                                c2 = -1;
                        args.allowed += consumed + 1;
 
+                       if ((c2 < c1 || c2 == -1) && !ast_opt_dont_warn) {
+                               ast_log(LOG_WARNING, "Range wrapping in FILTER(%s,%s).  This may not be what you want.\n", parse, args.string);
+                       }
+
                        /*!\note
                         * Looks a little strange, until you realize that we can overflow
                         * the size of a char.