summaryrefslogtreecommitdiff
path: root/res
diff options
context:
space:
mode:
authorRichard Mudgett <rmudgett@digium.com>2011-04-13 22:54:08 +0000
committerRichard Mudgett <rmudgett@digium.com>2011-04-13 22:54:08 +0000
commitb26a16dbcf5b06e709a3d2c215792d434eba5bd6 (patch)
tree222c62a193a5c496060ceaa15beb3fa0f0ab1f33 /res
parenta1b3e6b167c27bc6370a271d81bf22c10f1ae3ed (diff)
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
Diffstat (limited to 'res')
-rw-r--r--res/res_agi.c23
1 files changed, 12 insertions, 11 deletions
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;