|
From 7a03968243dbad8cab1a3bdd75794c4d7cc18d96 Mon Sep 17 00:00:00 2001
|
|
From: Christopher Faulet <cfaulet@haproxy.com>
|
|
Date: Mon, 9 Jan 2017 16:33:19 +0100
|
|
Subject: [PATCH] BUG/MINOR: stream: Fix how backend-specific analyzers are set
|
|
on a stream
|
|
|
|
When the stream's backend was defined, the request's analyzers flag was always
|
|
set to 0 if the stream had no listener. This bug was introduced with the filter
|
|
API but never triggered (I think so).
|
|
|
|
Because of the commit 5820a366, it is now possible to encountered it. For
|
|
example, this happens when the trace filter is enabled on a SPOE backend. The
|
|
fix is pretty trivial.
|
|
|
|
This fix must be backported to 1.7.
|
|
(cherry picked from commit 70e2f272127a931a7b245a95e3a022879145e1dd)
|
|
---
|
|
src/proxy.c | 2 +-
|
|
1 file changed, 1 insertion(+), 1 deletion(-)
|
|
|
|
diff --git a/src/proxy.c b/src/proxy.c
|
|
index fec2555..a84a08f 100644
|
|
--- a/src/proxy.c
|
|
+++ b/src/proxy.c
|
|
@@ -1156,7 +1156,7 @@ int stream_set_backend(struct stream *s, struct proxy *be)
|
|
* be more reliable to store the list of analysers that have been run,
|
|
* but what we do here is OK for now.
|
|
*/
|
|
- s->req.analysers |= be->be_req_ana & (strm_li(s) ? ~strm_li(s)->analysers : 0);
|
|
+ s->req.analysers |= be->be_req_ana & ~(strm_li(s) ? strm_li(s)->analysers : 0);
|
|
|
|
/* If the target backend requires HTTP processing, we have to allocate
|
|
* the HTTP transaction and hdr_idx if we did not have one.
|
|
--
|
|
2.10.2
|
|
|