[Asterisk-cvs] asterisk ChangeLog, 1.53, 1.54 asterisk.c, 1.191, 1.192 dnsmgr.c, 1.10, 1.11

kpfleming kpfleming
Mon Nov 7 20:38:09 CST 2005


Update of /usr/cvsroot/asterisk
In directory mongoose.digium.com:/tmp/cvs-serv14465

Modified Files:
	ChangeLog asterisk.c dnsmgr.c 
Log Message:
issue #5599


Index: ChangeLog
===================================================================
RCS file: /usr/cvsroot/asterisk/ChangeLog,v
retrieving revision 1.53
retrieving revision 1.54
diff -u -d -r1.53 -r1.54
--- ChangeLog	8 Nov 2005 01:05:52 -0000	1.53
+++ ChangeLog	8 Nov 2005 01:29:14 -0000	1.54
@@ -1,5 +1,8 @@
 2005-11-07  Kevin P. Fleming  <kpfleming at digium.com>
 
+	* asterisk.c (main): force a dnsmgr background refresh after all other modules are initialized (issue #5599)
+	* dnsmgr.c: add ability to start a background refresh on demand (issue #5599)
+
 	* apps/app_dial.c (HANDLE_CAUSE): set CDR disposition to match cause code (issue #5602)
 
 	* asterisk.c: support 'runuser' and 'rungroup' options in asterisk.conf (issue #5621)

Index: asterisk.c
===================================================================
RCS file: /usr/cvsroot/asterisk/asterisk.c,v
retrieving revision 1.191
retrieving revision 1.192
diff -u -d -r1.191 -r1.192
--- asterisk.c	8 Nov 2005 00:30:29 -0000	1.191
+++ asterisk.c	8 Nov 2005 01:29:14 -0000	1.192
@@ -2255,6 +2255,9 @@
 		printf(term_quit());
 		exit(1);
 	}
+
+	dnsmgr_start_refresh();
+
 #if 0
 	/* This should no longer be necessary */
 	/* sync cust config and reload some internals in case a custom config handler binded to them */

Index: dnsmgr.c
===================================================================
RCS file: /usr/cvsroot/asterisk/dnsmgr.c,v
retrieving revision 1.10
retrieving revision 1.11
diff -u -d -r1.10 -r1.11
--- dnsmgr.c	26 Oct 2005 18:54:24 -0000	1.10
+++ dnsmgr.c	8 Nov 2005 01:29:14 -0000	1.11
@@ -187,8 +187,16 @@
 
 	ast_mutex_unlock(&refresh_lock);
 
-	/* automatically reschedule */
-	return -1;
+	/* automatically reschedule based on the interval */
+	return refresh_interval * 1000;
+}
+
+void dnsmgr_start_refresh(void)
+{
+	if (refresh_sched > -1) {
+		ast_sched_del(sched, refresh_sched);
+		refresh_sched = ast_sched_add(sched, 100, refresh_list, &master_refresh_info);
+	}
 }
 
 static int do_reload(int loading);
@@ -328,10 +336,8 @@
 		ast_config_destroy(config);
 	}
 
-	if (enabled && refresh_interval) {
-		refresh_sched = ast_sched_add(sched, refresh_interval * 1000, refresh_list, &master_refresh_info);
+	if (enabled && refresh_interval)
 		ast_log(LOG_NOTICE, "Managed DNS entries will be refreshed every %d seconds.\n", refresh_interval);
-	}
 
 	/* if this reload enabled the manager, create the background thread
 	   if it does not exist */
@@ -340,10 +346,11 @@
 		pthread_attr_setdetachstate(&attr, PTHREAD_CREATE_DETACHED);
 		if (ast_pthread_create(&refresh_thread, &attr, do_refresh, NULL) < 0) {
 			ast_log(LOG_ERROR, "Unable to start refresh thread.\n");
-			ast_sched_del(sched, refresh_sched);
 		}
 		else {
 			ast_cli_register(&cli_refresh);
+			/* make a background refresh happen right away */
+			refresh_sched = ast_sched_add(sched, 100, refresh_list, &master_refresh_info);
 			res = 0;
 		}
 	}




More information about the svn-commits mailing list