aboutsummaryrefslogtreecommitdiffstats
path: root/pacredir.c
diff options
context:
space:
mode:
Diffstat (limited to 'pacredir.c')
-rw-r--r--pacredir.c20
1 files changed, 12 insertions, 8 deletions
diff --git a/pacredir.c b/pacredir.c
index 7c70ad3..7654d5c 100644
--- a/pacredir.c
+++ b/pacredir.c
@@ -97,7 +97,7 @@ update:
request.service = &tmphosts->pacserve;
} else if (strcmp(type, PACDBSERVE) == 0) {
tmphosts->pacdbserve.online = 1;
- tmphosts->pacdbserve.port = (port > 0? port : PORT_PACDBSERVE);
+ tmphosts->pacdbserve.port = (port > 0 ? port : PORT_PACDBSERVE);
request.service = &tmphosts->pacdbserve;
}
@@ -369,13 +369,17 @@ static int ahc_echo(void * cls,
/* try to find a server with most recent file */
while (tmphosts->host != NULL) {
+ struct services *service = (dbfile ? &tmphosts->pacdbserve : &tmphosts->pacserve);
+ time_t badtime = service->badtime + service->badcount * BADTIME;
+
/* skip host if offline or had a bad request within last BADTIME seconds */
- if ((dbfile == 1 &&
- (tmphosts->pacdbserve.online == 0 ||
- tmphosts->pacdbserve.badtime + tmphosts->pacdbserve.badcount * BADTIME > tv.tv_sec)) ||
- (dbfile == 0 &&
- (tmphosts->pacserve.online == 0 ||
- tmphosts->pacserve.badtime + tmphosts->pacserve.badcount * BADTIME > tv.tv_sec))) {
+ if (service->online == 0 || badtime > tv.tv_sec) {
+ /* write the time to buffer ctime, then strip the line break */
+ ctime_r(&badtime, ctime);
+ ctime[strlen(ctime) - 1] = '\0';
+
+ write_log(stdout, "Service %s on host %s is marked bad until %s, skipping\n",
+ dbfile ? PACDBSERVE : PACSERVE, tmphosts->host, ctime);
tmphosts = tmphosts->next;
continue;
}
@@ -411,7 +415,7 @@ static int ahc_echo(void * cls,
request->last_modified = 0;
if (verbose > 0)
- write_log(stdout, "Trying %s\n", request->url);
+ write_log(stdout, "Trying: %s\n", request->url);
if ((error = pthread_create(&tid[req_count], NULL, get_http_code, (void *)request)) != 0)
write_log(stderr, "Could not run thread number %d, errno %d\n", req_count, error);