[MINOR] set s->srv_error according to the analysers
s->srv_error was set depending on the frontend's protocol. Now it is
set by the HTTP analyser, so that even when switching from a TCP
frontend to an HTTP backend, we can have HTTP error messages.
diff --git a/src/client.c b/src/client.c
index c489168..ec8f120 100644
--- a/src/client.c
+++ b/src/client.c
@@ -231,10 +231,8 @@
else
s->do_log = tcp_sess_log;
- if (p->mode == PR_MODE_HTTP)
- s->srv_error = http_return_srv_error;
- else
- s->srv_error = default_srv_error;
+ /* default error reporting function, may be changed by analysers */
+ s->srv_error = default_srv_error;
s->logs.accept_date = date; /* user-visible date for logging */
s->logs.tv_accept = now; /* corrected date for internal use */
diff --git a/src/proto_http.c b/src/proto_http.c
index 0fb759a..e495d32 100644
--- a/src/proto_http.c
+++ b/src/proto_http.c
@@ -1789,6 +1789,9 @@
req->l,
req->analysers);
+ /* we're speaking HTTP here, so let's speak HTTP to the client */
+ s->srv_error = http_return_srv_error;
+
if (likely(req->lr < req->r))
http_msg_analyzer(req, msg, &txn->hdr_idx);