In case of switching from TCP to HTTP, we want the HTTP request timeout
to be properly initialized. For this, we have to jump to the analyser
without breaking out of the loop nor waiting for incoming data. The way
it is done right now is not particularly clean but it works.
A cleaner method might involve pushing function pointers into a circular
list.
last_ana |= AN_REQ_SWITCHING_RULES;
if (!process_switching_rules(s, s->req, AN_REQ_SWITCHING_RULES))
break;
+ /* FIXME: we mait switch from TCP to HTTP and want to
+ * immediately loop back to the top. This is a dirty way
+ * of doing it, and we should find a cleaner method relying
+ * on a circular list of function pointers.
+ */
+ if ((s->req->analysers & ~last_ana) & AN_REQ_WAIT_HTTP)
+ continue;
}
if (s->req->analysers & AN_REQ_HTTP_PROCESS_BE) {