diff options
| author | Dmitry Volyntsev <xeioex@nginx.com> | 2016-05-23 18:44:23 +0300 |
|---|---|---|
| committer | Dmitry Volyntsev <xeioex@nginx.com> | 2016-05-23 18:44:23 +0300 |
| commit | 06176bce918ea25bce8e4cc3adcc0e692bf1eac6 (patch) | |
| tree | c1d9c513f560eb0b78a2a9f9d7c6fa78f5174bfe /src/http | |
| parent | 19140c8c4f7f16747df4a7e3bf4299a6a8d75a81 (diff) | |
| download | nginx-06176bce918ea25bce8e4cc3adcc0e692bf1eac6.tar.gz nginx-06176bce918ea25bce8e4cc3adcc0e692bf1eac6.tar.bz2 | |
Realip: port support in X-Real-IP and X-Forwarded-For.
Now, the module extracts optional port which may accompany an
IP address. This custom extension is introduced, among other
things, in order to facilitate logging of original client ports.
Addresses with ports are expected to be in the RFC 3986 format,
that is, with IPv6 addresses in square brackets. E.g.,
"X-Real-IP: [2001:0db8::1]:12345" sets client port ($remote_port)
to 12345.
Diffstat (limited to 'src/http')
| -rw-r--r-- | src/http/ngx_http_core_module.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/src/http/ngx_http_core_module.c b/src/http/ngx_http_core_module.c index f22448464..76917bbb0 100644 --- a/src/http/ngx_http_core_module.c +++ b/src/http/ngx_http_core_module.c @@ -2910,7 +2910,9 @@ ngx_http_get_forwarded_addr_internal(ngx_http_request_t *r, ngx_addr_t *addr, } } - if (ngx_parse_addr(r->pool, &paddr, p, xfflen - (p - xff)) != NGX_OK) { + if (ngx_parse_addr_port(r->pool, &paddr, p, xfflen - (p - xff)) + != NGX_OK) + { return NGX_DECLINED; } |
