[asterisk-commits] file: branch file/groupcountv2 r58852 - /team/file/groupcountv2/

asterisk-commits at lists.digium.com asterisk-commits at lists.digium.com
Tue Mar 13 09:48:38 MST 2007


Author: file
Date: Tue Mar 13 11:48:36 2007
New Revision: 58852

URL: http://svn.digium.com/view/asterisk?view=rev&rev=58852
Log:
Probably useful to have the group count discarded when the channel disappears.

Modified:
    team/file/groupcountv2/app.c
    team/file/groupcountv2/channel.c

Modified: team/file/groupcountv2/app.c
URL: http://svn.digium.com/view/asterisk/team/file/groupcountv2/app.c?view=diff&rev=58852&r1=58851&r2=58852
==============================================================================
--- team/file/groupcountv2/app.c (original)
+++ team/file/groupcountv2/app.c Tue Mar 13 11:48:36 2007
@@ -1125,6 +1125,18 @@
 
 int ast_app_group_discard(struct ast_channel *chan)
 {
+	struct ast_group_info *gi = NULL;
+
+	AST_LIST_LOCK(&groups);
+	AST_LIST_TRAVERSE_SAFE_BEGIN(&groups, gi, list) {
+		if (gi->chan == chan) {
+			AST_LIST_REMOVE_CURRENT(&groups, list);
+			free(gi);
+		}
+	}
+        AST_LIST_TRAVERSE_SAFE_END
+	AST_LIST_UNLOCK(&groups);
+
 	return 0;
 }
 

Modified: team/file/groupcountv2/channel.c
URL: http://svn.digium.com/view/asterisk/team/file/groupcountv2/channel.c?view=diff&rev=58852&r1=58851&r2=58852
==============================================================================
--- team/file/groupcountv2/channel.c (original)
+++ team/file/groupcountv2/channel.c Tue Mar 13 11:48:36 2007
@@ -953,6 +953,9 @@
 	
 	while ((vardata = AST_LIST_REMOVE_HEAD(headp, entries)))
 		ast_var_delete(vardata);
+
+	/* Drop out of the group counting radar */
+	ast_app_group_discard(chan);
 
 	free(chan);
 	ast_mutex_unlock(&chlock);
@@ -3102,6 +3105,8 @@
 	for (x = 0; x < AST_MAX_FDS; x++) {
 		original->fds[x] = clone->fds[x];
 	}
+	/* Drop group from original */
+	ast_app_group_discard(original);
 	clone_variables(original, clone);
 	AST_LIST_HEAD_INIT_NOLOCK(&clone->varshead);
 	/* Presense of ADSI capable CPE follows clone */



More information about the asterisk-commits mailing list