[Freeswitch-svn] [commit] r9302 - freeswitch/trunk/src/mod/applications/mod_conference

Freeswitch SVN mikej at freeswitch.org
Fri Aug 15 00:07:33 EDT 2008


Author: mikej
Date: Fri Aug 15 00:07:33 2008
New Revision: 9302

Modified:
   freeswitch/trunk/src/mod/applications/mod_conference/mod_conference.c

Log:
attempt to fix MODAPP-129, seg when kicking many conference members quickly

Modified: freeswitch/trunk/src/mod/applications/mod_conference/mod_conference.c
==============================================================================
--- freeswitch/trunk/src/mod/applications/mod_conference/mod_conference.c	(original)
+++ freeswitch/trunk/src/mod/applications/mod_conference/mod_conference.c	Fri Aug 15 00:07:33 2008
@@ -2828,11 +2828,12 @@
 	if (stream != NULL) {
 		stream->write_function(stream, "OK kicked %u\n", member->id);
 	}
-	if (test_eflag(member->conference, EFLAG_KICK_MEMBER) &&
-		switch_event_create_subclass(&event, SWITCH_EVENT_CUSTOM, CONF_EVENT_MAINT) == SWITCH_STATUS_SUCCESS) {
-		conference_add_event_member_data(member, event);
-		switch_event_add_header(event, SWITCH_STACK_BOTTOM, "Action", "kick-member");
-		switch_event_fire(&event);
+	if (member->conference && test_eflag(member->conference, EFLAG_KICK_MEMBER)) {
+		if (switch_event_create_subclass(&event, SWITCH_EVENT_CUSTOM, CONF_EVENT_MAINT) == SWITCH_STATUS_SUCCESS) {
+			conference_add_event_member_data(member, event);
+			switch_event_add_header(event, SWITCH_STACK_BOTTOM, "Action", "kick-member");
+			switch_event_fire(&event);
+		}
 	}
 	return SWITCH_STATUS_SUCCESS;
 }
@@ -3662,7 +3663,7 @@
 						conference_member_t *member = conference_member_get(conference, id);
 
 						if (member != NULL) {
-							pfn(conference_member_get(conference, id), stream, argv[argn + 2]);
+							pfn(member, stream, argv[argn + 2]);
 						} else {
 							stream->write_function(stream, "Non-Existant ID %u\n", id);
 						}



More information about the Freeswitch-svn mailing list