svn commit: samba r20060 - in branches: SAMBA_3_0/source/nsswitch SAMBA_3_0_24/source/nsswitch

jra at samba.org jra at samba.org
Thu Dec 7 05:48:02 GMT 2006


Author: jra
Date: 2006-12-07 05:48:01 +0000 (Thu, 07 Dec 2006)
New Revision: 20060

WebSVN: http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=rev&root=samba&rev=20060

Log:
Fix the timout calculation.
Jeremy.

Modified:
   branches/SAMBA_3_0/source/nsswitch/winbindd_cm.c
   branches/SAMBA_3_0_24/source/nsswitch/winbindd_cm.c


Changeset:
Modified: branches/SAMBA_3_0/source/nsswitch/winbindd_cm.c
===================================================================
--- branches/SAMBA_3_0/source/nsswitch/winbindd_cm.c	2006-12-07 04:02:20 UTC (rev 20059)
+++ branches/SAMBA_3_0/source/nsswitch/winbindd_cm.c	2006-12-07 05:48:01 UTC (rev 20060)
@@ -72,16 +72,18 @@
  If we're still offline, exponentially increase the timeout check.
 ****************************************************************/
 
-static void calc_new_online_timeout(struct winbindd_domain *domain)
+static void calc_new_online_timeout_check(struct winbindd_domain *domain)
 {
+	int wbc = lp_winbind_cache_time();
+
 	if (domain->startup) {
 		domain->check_online_timeout = 10;
-	} else if (domain->check_online_timeout == 0) {
-		domain->check_online_timeout = lp_winbind_cache_time();
+	} else if (domain->check_online_timeout < wbc) {
+		domain->check_online_timeout = wbc;
 	} else {
-		uint32 new_to = (domain->check_online_timeout * domain->check_online_timeout);
-		if (new_to < domain->check_online_timeout) {
-			new_to = 0x7FFFFFFF;
+		uint32 new_to = domain->check_online_timeout * 3;
+		if (new_to > (3*60*60)) {
+			new_to = 3*60*60; /* 3 hours. */
 		}
 		domain->check_online_timeout = new_to;
 	}
@@ -171,7 +173,7 @@
 	/* If we're in statup mode, check again in 10 seconds, not in
 	   lp_winbind_cache_time() seconds (which is 5 mins by default). */
 
-	calc_new_online_timeout(domain);
+	calc_new_online_timeout_check(domain);
 
 	domain->check_online_event = add_timed_event( NULL,
 						timeval_current_ofs(domain->check_online_timeout,0),

Modified: branches/SAMBA_3_0_24/source/nsswitch/winbindd_cm.c
===================================================================
--- branches/SAMBA_3_0_24/source/nsswitch/winbindd_cm.c	2006-12-07 04:02:20 UTC (rev 20059)
+++ branches/SAMBA_3_0_24/source/nsswitch/winbindd_cm.c	2006-12-07 05:48:01 UTC (rev 20060)
@@ -72,16 +72,18 @@
  If we're still offline, exponentially increase the timeout check.
 ****************************************************************/
 
-static void calc_new_online_timeout(struct winbindd_domain *domain)
+static void calc_new_online_timeout_check(struct winbindd_domain *domain)
 {
+	int wbc = lp_winbind_cache_time();
+
 	if (domain->startup) {
 		domain->check_online_timeout = 10;
-	} else if (domain->check_online_timeout == 0) {
-		domain->check_online_timeout = lp_winbind_cache_time();
+	} else if (domain->check_online_timeout < wbc) {
+		domain->check_online_timeout = wbc;
 	} else {
-		uint32 new_to = (domain->check_online_timeout * domain->check_online_timeout);
-		if (new_to < domain->check_online_timeout) {
-			new_to = 0x7FFFFFFF;
+		uint32 new_to = domain->check_online_timeout * 3;
+		if (new_to > (3*60*60)) {
+			new_to = 3*60*60; /* 3 hours. */
 		}
 		domain->check_online_timeout = new_to;
 	}
@@ -171,7 +173,7 @@
 	/* If we're in statup mode, check again in 10 seconds, not in
 	   lp_winbind_cache_time() seconds (which is 5 mins by default). */
 
-	calc_new_online_timeout(domain);
+	calc_new_online_timeout_check(domain);
 
 	domain->check_online_event = add_timed_event( NULL,
 						timeval_current_ofs(domain->check_online_timeout,0),



More information about the samba-cvs mailing list