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