From 7dd7b908db1cb804ffe30ef208f7eac1824c1889 Mon Sep 17 00:00:00 2001 From: Olivier Houchard Date: Wed, 13 May 2020 19:07:20 +0200 Subject: [PATCH] BUG/MEDIUM: stream: Only allow L7 retries when using HTTP. Only allow L7 retries when using HTTP, it only really makes sense for HTTP, anyway, and as the L7 retries code assume the message will be HTX, it will crash when used with mode TCP. This should fix github issue #627. This should be backported to 2.1 and 2.0. --- src/stream.c | 1 + 1 file changed, 1 insertion(+) diff --git a/src/stream.c b/src/stream.c index f7ed26f30..4fa41a71d 100644 --- a/src/stream.c +++ b/src/stream.c @@ -2068,6 +2068,7 @@ struct task *process_stream(struct task *t, void *context, unsigned short state) si_b->state = SI_ST_REQ; /* new connection requested */ si_b->conn_retries = s->be->conn_retries; if ((s->be->retry_type &~ PR_RE_CONN_FAILED) && + (s->be->mode == PR_MODE_HTTP) && !(si_b->flags & SI_FL_D_L7_RETRY)) si_b->flags |= SI_FL_L7_RETRY; }