[asterisk-commits] twilson: trunk r272109 - /trunk/apps/app_meetme.c

SVN commits to the Asterisk project asterisk-commits at lists.digium.com
Wed Jun 23 12:21:44 CDT 2010


Author: twilson
Date: Wed Jun 23 12:21:40 2010
New Revision: 272109

URL: http://svnview.digium.com/svn/asterisk?view=rev&rev=272109
Log:
Make sure reload updates SLA config

Even if there are no stations or trunks defined, we need to start the sla
thread to make sure we get the reload event. Also, when doing a reload we need
to remove the existing trunks and stations or they end up hanging around.

(closes issue #16818)
Reported by: mbonin
Patches: 
      sla_reload.patch uploaded by twilson (license 396)
Tested by: twilson

Modified:
    trunk/apps/app_meetme.c

Modified: trunk/apps/app_meetme.c
URL: http://svnview.digium.com/svn/asterisk/trunk/apps/app_meetme.c?view=diff&rev=272109&r1=272108&r2=272109
==============================================================================
--- trunk/apps/app_meetme.c (original)
+++ trunk/apps/app_meetme.c Wed Jun 23 12:21:40 2010
@@ -5675,6 +5675,19 @@
 		return;
 	}
 
+	/* We need to actually delete the previous versions of trunks and stations now */
+	AST_RWLIST_TRAVERSE_SAFE_BEGIN(&sla_stations, station, entry) {
+		AST_RWLIST_REMOVE_CURRENT(entry);
+		ast_free(station);
+	}
+	AST_RWLIST_TRAVERSE_SAFE_END;
+
+	AST_RWLIST_TRAVERSE_SAFE_BEGIN(&sla_trunks, trunk, entry) {
+		AST_RWLIST_REMOVE_CURRENT(entry);
+		ast_free(trunk);
+	}
+	AST_RWLIST_TRAVERSE_SAFE_END;
+
 	/* yay */
 	sla_load_config(1);
 	sla.reload = 0;
@@ -5727,8 +5740,9 @@
 			ast_mutex_lock(&sla.lock);
 		}
 
-		if (sla.reload)
+		if (sla.reload) {
 			sla_check_reload();
+		}
 	}
 
 	ast_mutex_unlock(&sla.lock);
@@ -6599,8 +6613,11 @@
 
 	ast_config_destroy(cfg);
 
-	if (!reload && (!AST_LIST_EMPTY(&sla_stations) || !AST_LIST_EMPTY(&sla_stations)))
+	/* Even if we don't have any stations, we may after a reload and we need to
+	 * be able to process the SLA_EVENT_RELOAD event in that case */
+	if (!reload) {
 		ast_pthread_create(&sla.thread, NULL, sla_thread, NULL);
+	}
 
 	return res;
 }




More information about the asterisk-commits mailing list