pbx_lua: fix regression with global sym export and context clash by pbx_config.
[asterisk/asterisk.git] / pbx / pbx_loopback.c
index 9ab1463..dc9e7c7 100644 (file)
  *
  */
 
+/*** MODULEINFO
+       <support_level>core</support_level>
+ ***/
+
 #include "asterisk.h"
 
 ASTERISK_FILE_VERSION(__FILE__, "$Revision$")
@@ -76,7 +80,7 @@ ASTERISK_FILE_VERSION(__FILE__, "$Revision$")
        char *newpattern=NULL; \
        loopback_subst(buf, sizeof(buf), exten, context, priority, data); \
        loopback_parse(&newexten, &newcontext, &newpriority, &newpattern, buf); \
-       ast_log(LOG_DEBUG, "Parsed into %s @ %s priority %d\n", newexten, newcontext, newpriority); \
+       ast_debug(1, "Parsed into %s @ %s priority %d\n", newexten, newcontext, newpriority); \
        if (!strcasecmp(newcontext, context)) return -1
 
 static char *loopback_subst(char *buf, int buflen, const char *exten, const char *context, int priority, const char *data)
@@ -87,12 +91,15 @@ static char *loopback_subst(char *buf, int buflen, const char *exten, const char
 
        snprintf(tmp, sizeof(tmp), "%d", priority);
        AST_LIST_HEAD_INIT_NOLOCK(&headp);
-       newvariable = ast_var_assign("EXTEN", exten);
-       AST_LIST_INSERT_HEAD(&headp, newvariable, entries);
-       newvariable = ast_var_assign("CONTEXT", context);
-       AST_LIST_INSERT_HEAD(&headp, newvariable, entries);
-       newvariable = ast_var_assign("PRIORITY", tmp);
-       AST_LIST_INSERT_HEAD(&headp, newvariable, entries);
+       if ((newvariable = ast_var_assign("EXTEN", exten))) {
+               AST_LIST_INSERT_HEAD(&headp, newvariable, entries);
+       }
+       if ((newvariable = ast_var_assign("CONTEXT", context))) {
+               AST_LIST_INSERT_HEAD(&headp, newvariable, entries);
+       }
+       if ((newvariable = ast_var_assign("PRIORITY", tmp))) {
+               AST_LIST_INSERT_HEAD(&headp, newvariable, entries);
+       }
        /* Substitute variables */
        pbx_substitute_variables_varshead(&headp, data, buf, buflen);
        /* free the list */
@@ -159,12 +166,12 @@ static int loopback_matchmore(struct ast_channel *chan, const char *context, con
 
 static struct ast_switch loopback_switch =
 {
-        name:                   "Loopback",
-        description:                   "Loopback Dialplan Switch",
-        exists:                 loopback_exists,
-        canmatch:               loopback_canmatch,
-        exec:                   loopback_exec,
-        matchmore:              loopback_matchmore,
+       .name                   = "Loopback",
+       .description            = "Loopback Dialplan Switch",
+       .exists                 = loopback_exists,
+       .canmatch               = loopback_canmatch,
+       .exec                   = loopback_exec,
+       .matchmore              = loopback_matchmore,
 };
 
 static int unload_module(void)