This revision fixes bug 7731, the inability for macros to be called more than one level deep in the 'h' extension.

It also pushes up the limit of recursion depth from 7 to 20.




git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.2@39931 65c4cc65-6c06-0410-ace0-fbb531ad65f3
This commit is contained in:
Steve Murphy
2006-08-15 22:13:47 +00:00
parent 7b46b7133d
commit f4e47e9b51

View File

@@ -127,7 +127,7 @@ static int macro_exec(struct ast_channel *chan, void *data)
depth = 0; depth = 0;
} }
if (depth >= 7) { if (depth >= 20) {
ast_log(LOG_ERROR, "Macro(): possible infinite loop detected. Returning early.\n"); ast_log(LOG_ERROR, "Macro(): possible infinite loop detected. Returning early.\n");
LOCAL_USER_REMOVE(u); LOCAL_USER_REMOVE(u);
return 0; return 0;
@@ -241,9 +241,9 @@ static int macro_exec(struct ast_channel *chan, void *data)
break; break;
} }
/* don't stop executing extensions when we're in "h" */ /* don't stop executing extensions when we're in "h" */
if (chan->_softhangup && strcasecmp(oldexten,"h")) { if (chan->_softhangup && strcasecmp(chan->macroexten,"h")) {
ast_log(LOG_DEBUG, "Extension %s, priority %d returned normally even though call was hung up\n", ast_log(LOG_DEBUG, "Extension %s, macroexten %s, priority %d returned normally even though call was hung up\n",
chan->exten, chan->priority); chan->exten, chan->macroexten, chan->priority);
goto out; goto out;
} }
chan->priority++; chan->priority++;