Add an 'X' option to the asterisk application which enables #exec for configuration...
authorJoshua Colp <jcolp@digium.com>
Wed, 2 Dec 2009 20:10:07 +0000 (20:10 +0000)
committerJoshua Colp <jcolp@digium.com>
Wed, 2 Dec 2009 20:10:07 +0000 (20:10 +0000)
This option can be used to enable #exec support in the asterisk.conf configuration file.

(closes issue #16260)
Reported by: atis
Patches:
      exec_includes.patch uploaded by atis (license 242)

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

CHANGES
doc/asterisk.sgml
main/asterisk.c

diff --git a/CHANGES b/CHANGES
index 5e3ff81..279b88b 100644 (file)
--- a/CHANGES
+++ b/CHANGES
@@ -344,7 +344,9 @@ Miscellaneous
  * Modules.conf has a new option - "require" - that marks a module as critical for 
    the execution of Asterisk.
    If one of the required modules fail to load, Asterisk will exit with a return
-   code set to 2. 
+   code set to 2.
+ * An 'X' option has been added to the asterisk application which enables #exec support.
+   This allows #exec to be used in asterisk.conf.
 
 ------------------------------------------------------------------------------
 --- Functionality changes from Asterisk 1.6.1 to Asterisk 1.6.2  -------------
index 655d33e..31d96dd 100644 (file)
                        </para>
                </listitem>
        </varlistentry>
+       <varlistentry>
+               <term>-X</term>
+               <listitem>
+                       <para>
+                       Enables executing of includes via <command>#exec</command> directive.
+                       This can be useful if You want to do <command>#exec</command> inside
+                       <filename>asterisk.conf</filename>
+                       </para>
+               </listitem>
+       </varlistentry>
        </variablelist>
 </refsect1>
 <refsect1>
index 4dee9da..f8f3fa4 100644 (file)
@@ -2777,6 +2777,7 @@ static int show_cli_help(void) {
        printf("                   of output to the CLI\n");
        printf("   -v              Increase verbosity (multiple v's = more verbose)\n");
        printf("   -x <cmd>        Execute command <cmd> (only valid with -r)\n");
+       printf("   -X              Execute includes by default (allows #exec in asterisk.conf)\n");
        printf("   -W              Adjust terminal colors to compensate for a light background\n");
        printf("\n");
        return 0;
@@ -3141,7 +3142,7 @@ int main(int argc, char *argv[])
        if (getenv("HOME")) 
                snprintf(filename, sizeof(filename), "%s/.asterisk_history", getenv("HOME"));
        /* Check for options */
-       while ((c = getopt(argc, argv, "BC:cde:FfG:ghIiL:M:mnpqRrs:TtU:VvWx:")) != -1) {
+       while ((c = getopt(argc, argv, "BC:cde:FfG:ghIiL:M:mnpqRrs:TtU:VvWXx:")) != -1) {
                /*!\note Please keep the ordering here to alphabetical, capital letters
                 * first.  This will make it easier in the future to select unused
                 * option flags for new features. */
@@ -3150,6 +3151,9 @@ int main(int argc, char *argv[])
                        ast_set_flag(&ast_options, AST_OPT_FLAG_FORCE_BLACK_BACKGROUND);
                        ast_clear_flag(&ast_options, AST_OPT_FLAG_LIGHT_BACKGROUND);
                        break;
+               case 'X':
+                       ast_set_flag(&ast_options, AST_OPT_FLAG_EXEC_INCLUDES);
+                       break;
                case 'C':
                        ast_copy_string(cfg_paths.config_file, optarg, sizeof(cfg_paths.config_file));
                        ast_set_flag(&ast_options, AST_OPT_FLAG_OVERRIDE_CONFIG);