[MAJOR] http: complete splitting of the remaining stages
The HTTP processing has been splitted into 7 steps, one of which
is not anymore HTTP-specific (content-switching). That way, it
becomes possible to use "use_backend" rules in TCP mode. A new
"use_server" directive should follow soon.
diff --git a/src/cfgparse.c b/src/cfgparse.c
index 3852c45..5afb11e 100644
--- a/src/cfgparse.c
+++ b/src/cfgparse.c
@@ -3775,9 +3775,11 @@
listener->accept = event_accept;
listener->private = curproxy;
listener->handler = process_session;
+ /* both TCP and HTTP must check switching rules */
+ listener->analysers |= AN_REQ_SWITCHING_RULES;
if (curproxy->mode == PR_MODE_HTTP)
- listener->analysers |= AN_REQ_WAIT_HTTP | AN_REQ_HTTP_HDR;
+ listener->analysers |= AN_REQ_WAIT_HTTP | AN_REQ_HTTP_PROCESS_FE | AN_REQ_HTTP_INNER | AN_REQ_HTTP_PROCESS_BE;
/* smart accept mode is automatic in HTTP mode */
if ((curproxy->options2 & PR_O2_SMARTACC) ||
@@ -3789,6 +3791,7 @@
!LIST_ISEMPTY(&curproxy->tcp_req.inspect_rules))
listener->analysers |= AN_REQ_INSPECT;
+ /* We want the use_backend and default_backend rules to apply */
listener = listener->next;
}