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
*
* 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
/*
- * 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;