[asterisk-commits] murf: trunk r40200 - /trunk/apps/app_macro.c
asterisk-commits at lists.digium.com
asterisk-commits at lists.digium.com
Thu Aug 17 08:48:50 MST 2006
Author: murf
Date: Thu Aug 17 10:48:49 2006
New Revision: 40200
URL: http://svn.digium.com/view/asterisk?rev=40200&view=rev
Log:
In app_macro, changed the previously changed upper recursion depth limit to a variable, default of the original val of 7. MACRO_RECURSION is a channel variable that will override the limit, but until I can understand and fix why this limit is neccessary, I am not advertising this variable in the docs.
Modified:
trunk/apps/app_macro.c
Modified: trunk/apps/app_macro.c
URL: http://svn.digium.com/view/asterisk/trunk/apps/app_macro.c?rev=40200&r1=40199&r2=40200&view=diff
==============================================================================
--- trunk/apps/app_macro.c (original)
+++ trunk/apps/app_macro.c Thu Aug 17 10:48:49 2006
@@ -112,7 +112,7 @@
int oldpriority;
char pc[80], depthc[12];
char oldcontext[AST_MAX_CONTEXT] = "";
- int offset, depth = 0;
+ int offset, depth = 0, maxdepth = 7;
int setmacrocontext=0;
int autoloopflag, dead = 0;
@@ -129,11 +129,16 @@
LOCAL_USER_ADD(u);
+ /* does the user want a deeper rabbit hole? */
+ s = pbx_builtin_getvar_helper(chan, "MACRO_RECURSION");
+ if (s)
+ sscanf(s, "%d", &maxdepth);
+
/* Count how many levels deep the rabbit hole goes */
s = pbx_builtin_getvar_helper(chan, "MACRO_DEPTH");
if (s)
sscanf(s, "%d", &depth);
- if (depth >= 20) {
+ if (depth >= maxdepth) {
ast_log(LOG_ERROR, "Macro(): possible infinite loop detected. Returning early.\n");
LOCAL_USER_REMOVE(u);
return 0;
More information about the asterisk-commits
mailing list