From 6054819a70a442f6cc5ff563d432512096017da6 Mon Sep 17 00:00:00 2001 From: Willy Tarreau Date: Sun, 17 Feb 2008 11:34:10 +0100 Subject: [PATCH] [BUG] do not apply timeout.connect in checks if unset tv_bound() does not consider infinite timeouts, so we must check that timeout.connect is set before applying it to the checks. --- src/checks.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/checks.c b/src/checks.c index 0fbe16678..1a5bf7160 100644 --- a/src/checks.c +++ b/src/checks.c @@ -496,11 +496,12 @@ void process_chk(struct task *t, struct timeval *next) * to establish but only when timeout.check is set * as it may be to short for a full check otherwise */ - tv_add(&tv_con, &now, &s->proxy->timeout.connect); tv_ms_add(&t->expire, &now, s->inter); - if (tv_isset(&s->proxy->timeout.check)) + if (tv_isset(&s->proxy->timeout.check) && tv_isset(&s->proxy->timeout.connect)) { + tv_add(&tv_con, &now, &s->proxy->timeout.connect); tv_bound(&t->expire, &tv_con); + } task_queue(t); /* restore t to its place in the task list */ *next = t->expire;