[asterisk-commits] bebuild: tag 1.8.24.0-rc2 r401234 - in /tags/1.8.24.0-rc2: ./ main/

SVN commits to the Asterisk project asterisk-commits at lists.digium.com
Fri Oct 18 11:33:15 CDT 2013


Author: bebuild
Date: Fri Oct 18 11:33:13 2013
New Revision: 401234

URL: http://svnview.digium.com/svn/asterisk?view=rev&rev=401234
Log:
Make updates for Asterisk 1.8.24.0-rc2

* Remove old summaries; update ChangeLog; version
* Merge r401178 for ASTERISK-22718

Removed:
    tags/1.8.24.0-rc2/asterisk-1.8.24.0-rc1-summary.html
    tags/1.8.24.0-rc2/asterisk-1.8.24.0-rc1-summary.txt
Modified:
    tags/1.8.24.0-rc2/   (props changed)
    tags/1.8.24.0-rc2/.version
    tags/1.8.24.0-rc2/ChangeLog
    tags/1.8.24.0-rc2/main/channel.c

Propchange: tags/1.8.24.0-rc2/
------------------------------------------------------------------------------
    svn:mergeinfo = /branches/1.8:401178

Modified: tags/1.8.24.0-rc2/.version
URL: http://svnview.digium.com/svn/asterisk/tags/1.8.24.0-rc2/.version?view=diff&rev=401234&r1=401233&r2=401234
==============================================================================
--- tags/1.8.24.0-rc2/.version (original)
+++ tags/1.8.24.0-rc2/.version Fri Oct 18 11:33:13 2013
@@ -1,1 +1,1 @@
-1.8.24.0-rc1
+1.8.24.0-rc2

Modified: tags/1.8.24.0-rc2/ChangeLog
URL: http://svnview.digium.com/svn/asterisk/tags/1.8.24.0-rc2/ChangeLog?view=diff&rev=401234&r1=401233&r2=401234
==============================================================================
--- tags/1.8.24.0-rc2/ChangeLog (original)
+++ tags/1.8.24.0-rc2/ChangeLog Fri Oct 18 11:33:13 2013
@@ -1,3 +1,21 @@
+2013-10-18  Asterisk Development Team <asteriskteam at digium.com>
+
+	* Asterisk 1.8.24.0-rc2 Released.
+
+	* Properly copy/remove the device state cache flag over a masquerade.
+
+	  In r378303 the AST_FLAG_DISABLE_DEVSTATE_CACHE flag was added that
+	  tells the devstate system to not cache states for non-real devices.
+	  However, when optimizing away channels (ast_do_masquerade), that flag
+	  wasn't copied.
+
+	  In my case, using Local devices as queue members created a situation
+	  where the endpoint was considered in use, but the state change of the
+	  device being available again was ignored (not cached). The endpoint
+	  channel was optimized into the (previously) Local channel, but kept
+	  the do-not-cache flag. The end result being that the queue member
+	  apparently stayed in use forever.
+
 2013-09-19  Asterisk Development Team <asteriskteam at digium.com>
 
 	* Asterisk 1.8.24.0-rc1 Released.

Modified: tags/1.8.24.0-rc2/main/channel.c
URL: http://svnview.digium.com/svn/asterisk/tags/1.8.24.0-rc2/main/channel.c?view=diff&rev=401234&r1=401233&r2=401234
==============================================================================
--- tags/1.8.24.0-rc2/main/channel.c (original)
+++ tags/1.8.24.0-rc2/main/channel.c Fri Oct 18 11:33:13 2013
@@ -6504,6 +6504,8 @@
 	int x;
 	int i;
 	int origstate;
+	unsigned int orig_disablestatecache;
+	unsigned int clone_disablestatecache;
 	int visible_indication;
 	int clone_was_zombie = 0;/*!< TRUE if the clonechan was a zombie before the masquerade. */
 	struct ast_frame *current;
@@ -6727,6 +6729,20 @@
 	origstate = original->_state;
 	original->_state = clonechan->_state;
 	clonechan->_state = origstate;
+
+	/* And the swap the cachable state too. Otherwise we'd start caching
+	 * Local channels and ignoring real ones. */
+	orig_disablestatecache = ast_test_flag(original, AST_FLAG_DISABLE_DEVSTATE_CACHE);
+	clone_disablestatecache = ast_test_flag(clonechan, AST_FLAG_DISABLE_DEVSTATE_CACHE);
+	if (orig_disablestatecache != clone_disablestatecache) {
+		if (orig_disablestatecache) {
+			ast_clear_flag(original, AST_FLAG_DISABLE_DEVSTATE_CACHE);
+			ast_set_flag(clonechan, AST_FLAG_DISABLE_DEVSTATE_CACHE);
+		} else {
+			ast_set_flag(original, AST_FLAG_DISABLE_DEVSTATE_CACHE);
+			ast_clear_flag(clonechan, AST_FLAG_DISABLE_DEVSTATE_CACHE);
+		}
+	}
 
 	/* Mangle the name of the clone channel */
 	snprintf(zombn, sizeof(zombn), "%s<ZOMBIE>", orig); /* quick, hide the brains! */




More information about the asterisk-commits mailing list