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

Freeswitch SVN anthm at freeswitch.org
Thu Dec 7 13:02:36 EST 2006


Author: anthm
Date: Thu Dec  7 13:02:35 2006
New Revision: 3566

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

Log:
lets send the event about the conference before we free the pool mmmkay

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	Thu Dec  7 13:02:35 2006
@@ -734,8 +734,22 @@
 		switch_mutex_unlock(conference->mutex);
 	} /* Rinse ... Repeat */
 
-	switch_core_timer_destroy(&timer);
 
+
+	if (switch_event_create(&event, SWITCH_EVENT_PRESENCE_IN) == SWITCH_STATUS_SUCCESS) {
+		switch_event_add_header(event, SWITCH_STACK_BOTTOM, "proto", CONF_CHAT_PROTO);
+		switch_event_add_header(event, SWITCH_STACK_BOTTOM, "login", "%s", conference->name);
+		switch_event_add_header(event, SWITCH_STACK_BOTTOM, "from", "%s@%s", conference->name, conference->domain);
+		switch_event_add_header(event, SWITCH_STACK_BOTTOM, "status", "Inactive");
+		switch_event_add_header(event, SWITCH_STACK_BOTTOM, "rpid", "idle");
+		switch_event_add_header(event, SWITCH_STACK_BOTTOM, "event_type", "presence");
+
+		switch_event_fire(&event);
+	}
+
+    
+	switch_core_timer_destroy(&timer);
+    
 	if (switch_test_flag(conference, CFLAG_DESTRUCT)) {
 
 		switch_mutex_lock(conference->mutex);
@@ -771,23 +785,13 @@
 		switch_mutex_lock(globals.hash_mutex);		
 		switch_core_hash_delete(globals.conference_hash, conference->name);
 		switch_mutex_unlock(globals.hash_mutex);
-
+        
 		if (conference->pool) {
 			switch_memory_pool_t *pool = conference->pool;
 			switch_core_destroy_memory_pool(&pool);
 		}
 	}
 
-	if (switch_event_create(&event, SWITCH_EVENT_PRESENCE_IN) == SWITCH_STATUS_SUCCESS) {
-		switch_event_add_header(event, SWITCH_STACK_BOTTOM, "proto", CONF_CHAT_PROTO);
-		switch_event_add_header(event, SWITCH_STACK_BOTTOM, "login", "%s", conference->name);
-		switch_event_add_header(event, SWITCH_STACK_BOTTOM, "from", "%s@%s", conference->name, conference->domain);
-		switch_event_add_header(event, SWITCH_STACK_BOTTOM, "status", "Inactive");
-		switch_event_add_header(event, SWITCH_STACK_BOTTOM, "rpid", "idle");
-		switch_event_add_header(event, SWITCH_STACK_BOTTOM, "event_type", "presence");
-
-		switch_event_fire(&event);
-	}
 	switch_mutex_lock(globals.hash_mutex);
 	globals.threads--;	
 	switch_mutex_unlock(globals.hash_mutex);



More information about the Freeswitch-svn mailing list