[asterisk-commits] rmudgett: branch 1.8 r313700 - /branches/1.8/res/res_agi.c

SVN commits to the Asterisk project asterisk-commits at lists.digium.com
Wed Apr 13 17:52:51 CDT 2011


Author: rmudgett
Date: Wed Apr 13 17:52:47 2011
New Revision: 313700

URL: http://svnview.digium.com/svn/asterisk?view=rev&rev=313700
Log:
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.

Modified:
    branches/1.8/res/res_agi.c

Modified: branches/1.8/res/res_agi.c
URL: http://svnview.digium.com/svn/asterisk/branches/1.8/res/res_agi.c?view=diff&rev=313700&r1=313699&r2=313700
==============================================================================
--- branches/1.8/res/res_agi.c (original)
+++ branches/1.8/res/res_agi.c Wed Apr 13 17:52:47 2011
@@ -1225,19 +1225,16 @@
 		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 @@
 	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;
 




More information about the asterisk-commits mailing list