dect
/
asterisk
Archived
13
0
Fork 0

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: http://svn.digium.com/svn/asterisk/trunk@313701 f38db490-d61c-443f-a65b-d21fe96a405b
This commit is contained in:
rmudgett 2011-04-13 22:54:08 +00:00
parent 4ff120bb0f
commit 32198d4329
1 changed files with 12 additions and 11 deletions

View File

@ -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;