From: Ondřej Surý Date: Tue, 8 Jun 2010 10:31:21 +0000 (+0200) Subject: Sleep seconds as fibonacci number X-Git-Tag: upstream/2.0.0~5 X-Git-Url: http://andersk.mit.edu/gitweb/mod-vhost-ldap.git/commitdiff_plain/4d9859cb4fead10e85901afcf0a39da0b8c939a6 Sleep seconds as fibonacci number --- diff --git a/mod_vhost_ldap.c b/mod_vhost_ldap.c index c5cbe96..16bbdd3 100644 --- a/mod_vhost_ldap.c +++ b/mod_vhost_ldap.c @@ -468,7 +468,9 @@ static int mod_vhost_ldap_translate_name(request_rec *r) char *cgi; const char *hostname = NULL; int is_fallback = 0; - int sleep = 0; + int sleep0 = 0; + int sleep1 = 1; + int sleep; reqc = (mod_vhost_ldap_request_t *)apr_pcalloc(r->pool, sizeof(mod_vhost_ldap_request_t)); @@ -512,12 +514,14 @@ fallback: if (AP_LDAP_IS_SERVER_DOWN(result) || (result == LDAP_TIMEOUT) || (result == LDAP_CONNECT_ERROR)) { + sleep = sleep0 + sleep1; ap_log_rerror(APLOG_MARK, APLOG_WARNING|APLOG_NOERRNO, 0, r, "[mod_vhost_ldap.c]: lookup failure, retry number #[%d], sleeping for [%d] seconds", failures, sleep); if (failures++ < 5) { /* Back-off exponentially */ apr_sleep(apr_time_from_sec(sleep)); - sleep = sleep+failures; + sleep0 = sleep1; + sleep1 = sleep; goto start_over; } else { return HTTP_GATEWAY_TIME_OUT;