From b26a16dbcf5b06e709a3d2c215792d434eba5bd6 Mon Sep 17 00:00:00 2001 From: Richard Mudgett Date: Wed, 13 Apr 2011 22:54:08 +0000 Subject: Merged revisions 313700 via svnmerge from https://origsvn.digium.com/svn/asterisk/branches/1.8 ........ r313700 | rmudgett | 2011-04-13 17:52:47 -0500 (Wed, 13 Apr 2011) | 5 lines Revert flushing stale AsyncAGI commands from -r313615. It looks like it was intentional to leave any commands or in-flight commands in the queue in case Async AGI is run again on the call. ........ git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@313701 65c4cc65-6c06-0410-ace0-fbb531ad65f3 --- res/res_agi.c | 23 ++++++++++++----------- 1 file changed, 12 insertions(+), 11 deletions(-) (limited to 'res/res_agi.c') diff --git a/res/res_agi.c b/res/res_agi.c index c23c2c94f..4625c035c 100644 --- a/res/res_agi.c +++ b/res/res_agi.c @@ -1225,19 +1225,16 @@ static enum agi_result launch_asyncagi(struct ast_channel *chan, char *argv[], i return AGI_RESULT_FAILURE; } - /* Flush any stale commands. */ - while ((cmd = get_agi_cmd(chan))) { - free_agi_cmd(cmd); - } - /* this pipe allows us to create a "fake" AGI struct to use the AGI commands */ res = pipe(fds); if (res) { ast_log(LOG_ERROR, "Failed to create Async AGI pipe\n"); - /* intentionally do not remove datastore, added with - add_to_agi(), from channel. It will be removed when - the channel is hung up anyways */ + /* + * Intentionally do not remove the datastore added with + * add_to_agi() the from channel. It will be removed when the + * channel is hung up anyway. + */ return AGI_RESULT_FAILURE; } @@ -1341,9 +1338,13 @@ quit: close(fds[0]); close(fds[1]); - /* intentionally don't get rid of the datastore. So commands can be - still in the queue in case AsyncAGI gets called again. - Datastore destructor will be called on channel destroy anyway */ + /* + * Intentionally do not remove the datastore added with + * add_to_agi() the from channel. There might be commands still + * in the queue or in-flight to us and AsyncAGI may get called + * again. The datastore destructor will be called on channel + * destruction anyway. + */ return returnstatus; -- cgit v1.2.3