]> git.ipfire.org Git - thirdparty/haproxy.git/commitdiff
BUG/MINOR: filters: Invert evaluation order of HTTP_XFER_BODY and XFER_DATA analyzers
authorChristopher Faulet <cfaulet@haproxy.com>
Mon, 28 Nov 2016 11:36:26 +0000 (12:36 +0100)
committerWilly Tarreau <w@1wt.eu>
Tue, 29 Nov 2016 16:03:04 +0000 (17:03 +0100)
These 2 analyzers are responsible of the data forwarding in, respectively, HTTP
mode and TCP mode. Now, the analyzer responsible of the HTTP data forwarding is
called before the one responsible of the TCP data forwarding. This will allow
the filtering of tunneled data in HTTP.

[wt: backport desired in 1.7 - no impact right now but may impact the ability
 to backport future fixes]

src/stream.c

index b333dec628c8dcae822bb5964410babd06f57f4e..08f3aa9dee7d47abcc875a08bfd50d0425eef4f0 100644 (file)
@@ -1839,8 +1839,8 @@ struct task *process_stream(struct task *t)
                                FLT_ANALYZE(s, req, tcp_persist_rdp_cookie,     ana_list, ana_back, AN_REQ_PRST_RDP_COOKIE);
                                FLT_ANALYZE(s, req, process_sticking_rules,     ana_list, ana_back, AN_REQ_STICKING_RULES);
                                ANALYZE    (s, req, flt_analyze_http_headers,   ana_list, ana_back, AN_FLT_HTTP_HDRS);
-                               ANALYZE    (s, req, flt_xfer_data,              ana_list, ana_back, AN_FLT_XFER_DATA);
                                ANALYZE    (s, req, http_request_forward_body,  ana_list, ana_back, AN_REQ_HTTP_XFER_BODY);
+                               ANALYZE    (s, req, flt_xfer_data,              ana_list, ana_back, AN_FLT_XFER_DATA);
                                ANALYZE    (s, req, flt_end_analyze,            ana_list, ana_back, AN_FLT_END);
                                break;
                        }
@@ -1918,8 +1918,8 @@ struct task *process_stream(struct task *t)
                                FLT_ANALYZE(s, res, process_store_rules,        ana_list, ana_back, AN_RES_STORE_RULES);
                                FLT_ANALYZE(s, res, http_process_res_common,    ana_list, ana_back, AN_RES_HTTP_PROCESS_BE, s->be);
                                ANALYZE    (s, res, flt_analyze_http_headers,   ana_list, ana_back, AN_FLT_HTTP_HDRS);
-                               ANALYZE    (s, res, flt_xfer_data,              ana_list, ana_back, AN_FLT_XFER_DATA);
                                ANALYZE    (s, res, http_response_forward_body, ana_list, ana_back, AN_RES_HTTP_XFER_BODY);
+                               ANALYZE    (s, res, flt_xfer_data,              ana_list, ana_back, AN_FLT_XFER_DATA);
                                ANALYZE    (s, res, flt_end_analyze,            ana_list, ana_back, AN_FLT_END);
                                break;
                        }