Index: nslcd/cfg.c =================================================================== --- nslcd/cfg.c (revision 1749) +++ nslcd/cfg.c (arbetskopia) @@ -120,7 +120,7 @@ cfg->ldc_deref=LDAP_DEREF_NEVER; cfg->ldc_referrals=1; cfg->ldc_bind_timelimit=10; - cfg->ldc_timelimit=LDAP_NO_LIMIT; + cfg->ldc_timelimit=10; cfg->ldc_idle_timelimit=0; cfg->ldc_reconnect_sleeptime=1; cfg->ldc_reconnect_retrytime=10; Index: nslcd/myldap.c =================================================================== --- nslcd/myldap.c (revision 1749) +++ nslcd/myldap.c (arbetskopia) @@ -631,18 +631,20 @@ LDAP_SET_OPTION(session->ld,LDAP_OPT_DEREF,&nslcd_cfg->ldc_deref); log_log(LOG_DEBUG,"ldap_set_option(LDAP_OPT_TIMELIMIT,%d)",nslcd_cfg->ldc_timelimit); LDAP_SET_OPTION(session->ld,LDAP_OPT_TIMELIMIT,&nslcd_cfg->ldc_timelimit); - tv.tv_sec=nslcd_cfg->ldc_bind_timelimit; +#ifdef LDAP_OPT_TIMEOUT + tv.tv_sec=nslcd_cfg->ldc_timelimit; tv.tv_usec=0; -#ifdef LDAP_OPT_TIMEOUT log_log(LOG_DEBUG,"ldap_set_option(LDAP_OPT_TIMEOUT,%d)",nslcd_cfg->ldc_timelimit); LDAP_SET_OPTION(session->ld,LDAP_OPT_TIMEOUT,&tv); #endif /* LDAP_OPT_TIMEOUT */ #ifdef LDAP_OPT_NETWORK_TIMEOUT - log_log(LOG_DEBUG,"ldap_set_option(LDAP_OPT_NETWORK_TIMEOUT,%d)",nslcd_cfg->ldc_timelimit); + tv.tv_sec=nslcd_cfg->ldc_bind_timelimit; + tv.tv_usec=0; + log_log(LOG_DEBUG,"ldap_set_option(LDAP_OPT_NETWORK_TIMEOUT,%d)",nslcd_cfg->ldc_bind_timelimit); LDAP_SET_OPTION(session->ld,LDAP_OPT_NETWORK_TIMEOUT,&tv); #endif /* LDAP_OPT_NETWORK_TIMEOUT */ #ifdef LDAP_X_OPT_CONNECT_TIMEOUT - log_log(LOG_DEBUG,"ldap_set_option(LDAP_X_OPT_CONNECT_TIMEOUT,%d)",nslcd_cfg->ldc_timelimit); + log_log(LOG_DEBUG,"ldap_set_option(LDAP_X_OPT_CONNECT_TIMEOUT,%d)",nslcd_cfg->ldc_bind_timelimit); LDAP_SET_OPTION(session->ld,LDAP_X_OPT_CONNECT_TIMEOUT,&tv); #endif /* LDAP_X_OPT_CONNECT_TIMEOUT */ log_log(LOG_DEBUG,"ldap_set_option(LDAP_OPT_REFERRALS,%s)",nslcd_cfg->ldc_referrals?"LDAP_OPT_ON":"LDAP_OPT_OFF"); Index: pynslcd/cfg.py =================================================================== --- pynslcd/cfg.py (revision 1749) +++ pynslcd/cfg.py (arbetskopia) @@ -64,7 +64,7 @@ # timing configuration bind_timelimit = 10 -timelimit = ldap.NO_LIMIT +timelimit = 10 idle_timelimit = 0 reconnect_sleeptime = 1 reconnect_retrytime = 10 Index: pynslcd/pynslcd.py =================================================================== --- pynslcd/pynslcd.py (revision 1749) +++ pynslcd/pynslcd.py (arbetskopia) @@ -245,7 +245,8 @@ if cfg.timelimit: session.set_option(ldap.OPT_TIMELIMIT, cfg.timelimit) session.set_option(ldap.OPT_TIMEOUT, cfg.timelimit) - session.set_option(ldap.OPT_NETWORK_TIMEOUT, cfg.timelimit) + if cfg.bind_timelimit: + session.set_option(ldap.OPT_NETWORK_TIMEOUT, cfg.bind_timelimit) if cfg.referrals: session.set_option(ldap.OPT_REFERRALS, cfg.referrals) session.set_option(ldap.OPT_X_SASL_NOCANON, not cfg.sasl_canonicalize) Index: pynslcd/common.py =================================================================== --- pynslcd/common.py (revision 1749) +++ pynslcd/common.py (arbetskopia) @@ -212,7 +212,7 @@ self.write(*values) if self.cache: self.cache.store(*values) - except ldap.SERVER_DOWN: + except (ldap.SERVER_DOWN, ldap.CONNECT_ERROR, ldap.TIMEOUT): if self.cache: logging.debug('read from cache') # we assume server went down before writing any entries