realip_module
Anatoli Marinov
toli at webforge.bg
Tue Aug 16 11:40:29 UTC 2011
My patch for this issue was:
@@ -157,16 +157,13 @@
len = r->headers_in.x_forwarded_for->value.len;
ip = r->headers_in.x_forwarded_for->value.data;
- for (p = ip + len - 1; p > ip; p--) {
- if (*p == ' ' || *p == ',') {
- p++;
- len -= p - ip;
- ip = p;
- break;
- }
- }
+ p = ip;
- break;
+ while(*p != ',' && *p != ' ' && p < p + len){
+ p++;
+ }
+ len = p - ip;
+ break;
default: /* NGX_HTTP_REALIP_HEADER */
@@ -414,6 +411,7 @@
On 08/16/2011 12:46 PM, Anatoli Marinov wrote:
> Hello mates,
> I tried readip_module and I found it does not work as I expect.
> For example the header may looks like this:
> X-Forwarded-For: client1, proxy1, proxy2
>
> Where client1 should be the real ip address of the client, proxy1
> should be the first proxy after the client and proxy2 should be the
> last proxy after the client and the first before the nginx. Nginx has
> the connection with proxy2.
> I think In this case readip_module should return client1 ip address.
> It returns the latest address in the field - proxy2.
> What do you think? Is the behaviour wrong or I do not understand the
> meaning of this header?
>
> p.s. http://en.wikipedia.org/wiki/X-Forwarded-For
>
> Thanks in advance.
> A. Marinov
>
>
> _______________________________________________
> nginx-devel mailing list
> nginx-devel at nginx.org
> http://mailman.nginx.org/mailman/listinfo/nginx-devel
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mailman.nginx.org/pipermail/nginx-devel/attachments/20110816/43f8aac8/attachment.html>
More information about the nginx-devel
mailing list