[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