]> git.ipfire.org Git - thirdparty/asterisk.git/commitdiff
pbx_variables: Increase parsing capabilities of MSet
authorNaveen Albert <asterisk@phreaknet.org>
Sat, 20 Nov 2021 20:37:16 +0000 (20:37 +0000)
committerGeorge Joseph <gjoseph@digium.com>
Mon, 13 Dec 2021 19:46:08 +0000 (13:46 -0600)
Currently MSet can only parse a maximum of 24 variables.
If more variables are provided to MSet, the 24th variable
will simply contain the remainder of the string and the
remaining variables thereafter will never get set.

This increases the number of variables that can be parsed
in one go from 24 to 99. Additionally, documentation is added
since this limitation is currently undocumented and is
confusing to users who encounter this limitation.

ASTERISK-29766 #close

Change-Id: I3fe35b462dedec0a452fd9ea7f92c920a3939f16

main/pbx_variables.c

index b6c0dd8d53b66aaf099785411a7566c71244578d..2088740c7c2e69459d595ab0b2a191112c83bf13 100644 (file)
@@ -98,6 +98,7 @@
                        double-quotes from the right-hand side (value). If you need to put a separator
                        character (comma or vert-bar), you will need to escape them by inserting a backslash
                        before them. Avoid its use if possible.</para>
+                       <para>This application allows up to 99 variables to be set at once.</para>
                </description>
                <see-also>
                        <ref type="application">Set</ref>
@@ -1171,7 +1172,7 @@ int pbx_builtin_setvar_multiple(struct ast_channel *chan, const char *vdata)
        char *data;
        int x;
        AST_DECLARE_APP_ARGS(args,
-               AST_APP_ARG(pair)[24];
+               AST_APP_ARG(pair)[99]; /* parse up to 99 variables */
        );
        AST_DECLARE_APP_ARGS(pair,
                AST_APP_ARG(name);