[MINOR] option forwardfor is for frontends too
Finally, if the "option forwardfor" is specified in the frontend
and not in the backend, apply it.
diff --git a/TODO b/TODO
index d6b5740..ae120a1 100644
--- a/TODO
+++ b/TODO
@@ -174,4 +174,11 @@
filters and backend, on which every entity could rely.
- implement 'on uri <uri> <proxy>', 'on host <host> <proxy>'
- remove the first now useless hop in hdr_idx
+ - implement "track XXX.YYY" for each server as an alternative to
+ health checks. This will automatically set the server state to
+ the same as server YYY of proxy XXX.
+ - balance on URI hash (specify length or depth)
+ - balance on any header hash (eg: host)
+ - balance with redirections to real servers
+ - multi-site LB with weighted redirections to the remote one
diff --git a/src/proto_http.c b/src/proto_http.c
index a7e51d5..289ece6 100644
--- a/src/proto_http.c
+++ b/src/proto_http.c
@@ -1133,16 +1133,6 @@
*
* For the parsing, we use a 28 states FSM.
*
- * RFC2616 requires that both LF and CRLF are recognized as
- * line breaks, but that any other combination is an error.
- * To avoid duplicating all the states above to check for CR,
- * we use a special bit HTTP_PA_LF_EXP that we 'OR' with the
- * state we will switch to if the LF is seen, so that we know
- * whether there's a pending CR or not. We can check it
- * globally since all CR followed by anything but LF are
- * errors. Each state is entered with the first character is
- * has to process at req->lr.
- *
* Here is the information we currently have :
* req->data + req->som = beginning of request
* req->data + req->eoh = end of processed headers / start of current one
@@ -1570,9 +1560,10 @@
/*
- * 9: add X-Forwarded-For : Should depend on the backend only.
+ * 9: add X-Forwarded-For if either the frontend or the backend
+ * asks for it.
*/
- if (t->be->beprm->options & PR_O_FWDFOR) {
+ if ((t->fe->options | t->be->beprm->options) & PR_O_FWDFOR) {
if (t->cli_addr.ss_family == AF_INET) {
int len;
unsigned char *pn;