From: Howard Chu Date: Mon, 6 Jul 2009 21:02:28 +0000 (+0000) Subject: ITS#5836 more for 1.432, writetimeout wasn't taking effect if X-Git-Tag: ACLCHECK_0~450 X-Git-Url: https://git.sur5r.net/?a=commitdiff_plain;h=e6173ac9c2e5f22f521981917ee08df623cc8725;p=openldap ITS#5836 more for 1.432, writetimeout wasn't taking effect if idletimeout wasn't also set. Also, timeout check would keep getting pushed back if multiple writers were waiting. --- diff --git a/servers/slapd/daemon.c b/servers/slapd/daemon.c index 2350fdcd9e..8e4e853f2c 100644 --- a/servers/slapd/daemon.c +++ b/servers/slapd/daemon.c @@ -957,7 +957,7 @@ slapd_set_write( ber_socket_t s, int wake ) SLAP_SOCK_SET_WRITE( s ); slap_daemon.sd_nwriters++; } - if (( wake & 2 ) && global_writetimeout ) { + if (( wake & 2 ) && global_writetimeout && !chk_writetime ) { chk_writetime = slap_get_time(); } @@ -2177,7 +2177,7 @@ slapd_daemon_task( */ if ( chk_writetime ) { tv.tv_sec = global_writetimeout; - tv.tv_usec = global_writetimeout; + tv.tv_usec = 0; if ( difftime( chk_writetime, now ) < 0 ) check = 2; } else { @@ -2245,7 +2245,7 @@ slapd_daemon_task( nfds = SLAP_EVENT_MAX; - if ( global_idletimeout && slap_daemon.sd_nactives ) at = 1; + if (( chk_writetime || global_idletimeout ) && slap_daemon.sd_nactives ) at = 1; ldap_pvt_thread_mutex_unlock( &slap_daemon.sd_mutex );