Re: options forwardfor if-none not playing when an alternative header name is specified

2011-10-08 Thread Willy Tarreau
Hi Sagi,

On Sat, Oct 08, 2011 at 10:55:58PM +0200, Sagi Bashari wrote:
> Patch against 1.5-dev is attached. I ran a quick test against both 1.5-dev
> and 1.4.18 and it seems to work fine.

patch applied to both versions, thanks very much !

Willy




Re: options forwardfor if-none not playing when an alternative header name is specified

2011-10-08 Thread Sagi Bashari
Hi Willy,

On Thu, Oct 6, 2011 at 9:54 PM, Willy Tarreau  wrote:

> Hi Sagi,
>
> On Thu, Oct 06, 2011 at 04:40:41PM +0200, Sagi Bashari wrote:
> > Hi,
> >
> > I believe I have found a bug in HAProxy v1.4.18.
> >
> > The if-none directive of the forwardfor option always looks for the
> > X-Forwarded-For header, even if an alternative header name was set.
> >
> > This means that if I use something like:
> > options forwardfor header X-Client-IP if-none
> >
> > Then if the client sends its own X-Client-IP header, the client IP will
> be
> > appended, and if an X-Forwarded-For header is sent then no X-Client-IP
> > header will be added.
> >
> > The expected behavior is to only add the X-Client-IP header if the client
> > did not send such header himself.
> >
> > I did not test it, but I think the following will fix this:
> > Replace src/proto_http.c line 3479:
> > http_find_header2("X-Forwarded-For", 15, txn->req.sol, &txn->hdr_idx,
> &ctx))
> > {
> >
> > with:
> > http_find_header2(s->be->fwdfor_hdr_name, s->fe->fwdfor_hdr_len,
> > txn->req.sol, &txn->hdr_idx, &ctx)) {
>
> You're prefectly right, I overlooked this when I did the patch.
>
> Could you please send me a patch against 1.5-dev ? I'll apply it to
> both 1.5 and 1.4.
>
>
Patch against 1.5-dev is attached. I ran a quick test against both 1.5-dev
and 1.4.18 and it seems to work fine.

Regards,
Sagi


forwardfor-if-none.patch
Description: Binary data


Re: options forwardfor if-none not playing when an alternative header name is specified

2011-10-06 Thread Willy Tarreau
Hi Sagi,

On Thu, Oct 06, 2011 at 04:40:41PM +0200, Sagi Bashari wrote:
> Hi,
> 
> I believe I have found a bug in HAProxy v1.4.18.
> 
> The if-none directive of the forwardfor option always looks for the
> X-Forwarded-For header, even if an alternative header name was set.
> 
> This means that if I use something like:
> options forwardfor header X-Client-IP if-none
> 
> Then if the client sends its own X-Client-IP header, the client IP will be
> appended, and if an X-Forwarded-For header is sent then no X-Client-IP
> header will be added.
> 
> The expected behavior is to only add the X-Client-IP header if the client
> did not send such header himself.
> 
> I did not test it, but I think the following will fix this:
> Replace src/proto_http.c line 3479:
> http_find_header2("X-Forwarded-For", 15, txn->req.sol, &txn->hdr_idx, &ctx))
> {
> 
> with:
> http_find_header2(s->be->fwdfor_hdr_name, s->fe->fwdfor_hdr_len,
> txn->req.sol, &txn->hdr_idx, &ctx)) {

You're prefectly right, I overlooked this when I did the patch.

Could you please send me a patch against 1.5-dev ? I'll apply it to
both 1.5 and 1.4.

Thanks,
Willy