mirror of
https://github.com/asterisk/asterisk.git
synced 2025-09-19 11:42:27 +00:00
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:
@@ -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++;
|
||||||
|
Reference in New Issue
Block a user