[MINOR] option forwardfor is for frontends too

Finally, if the "option forwardfor" is specified in the frontend
and not in the backend, apply it.
This commit is contained in:
Willy Tarreau 2007-03-03 19:17:03 +01:00
parent c2168d3ccb
commit bb046ac8c5
2 changed files with 10 additions and 12 deletions

7
TODO
View File

@ -174,4 +174,11 @@ TODO for 1.3
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

View File

@ -1133,16 +1133,6 @@ int process_cli(struct session *t)
*
* 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 @@ int process_cli(struct session *t)
/*
* 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;