summaryrefslogtreecommitdiffhomepage
path: root/src/http/modules (follow)
AgeCommit message (Collapse)AuthorFilesLines
2012-06-04Merge of r4614, r4624-r4629, r4631: proxy recursive changes.Maxim Dounin3-197/+237
*) Added IPv6 and UNIX-domain socket support in "debug_connection" directive. *) New function ngx_http_get_forwarded_addr() to look up real client address. On input it takes an original address, string in the X-Forwarded-For format and its length, list of trusted proxies, and a flag indicating to perform the recursive search. On output it returns NGX_OK and the "deepest" valid address in a chain, or NGX_DECLINED. It supports AF_INET and AF_INET6. Additionally, original address and/or proxy may be specified as AF_UNIX. *) Realip: chains of trusted proxies and IPv6 support. The module now supports recursive search of client address through the chain of trusted proxies, controlled by the "real_ip_recursive" directive (closes #2). It also gets full IPv6 support (closes #44) and canonical value of the $client_addr variable on address change. Example: real_ip_header X-Forwarded-For; set_real_ip_from 127.0.0.0/8; set_real_ip_from ::1; set_real_ip_from unix:; real_ip_recursive on; *) Geo: chains of trusted proxies and partial IPv6 support. The module now supports recursive search of client address through the chain of trusted proxies, controlled by the "proxy_recursive" directive in the "geo" block. It also gets partial IPv6 support: now proxies may be specified with IPv6 addresses. Example: geo $test { ... proxy 127.0.0.1; proxy ::1; proxy_recursive; } There's also a slight change in behavior. When original client address (as specified by the "geo" directive) is one of the trusted proxies, and the value of the X-Forwarded-For request header cannot not be parsed as a valid address, an original client address will be used for lookup. Previously, 255.255.255.255 was used in this case. *) Geoip: trusted proxies support and partial IPv6 support. The module now supports recursive search of client address through the chain of trusted proxies (closes #100), in the same scope as the geo module. Proxies are listed by the "geoip_proxy" directive, recursive search is enabled by the "geoip_proxy_recursive" directive. IPv6 is partially supported: proxies may be specified with IPv6 addresses. Example: geoip_country .../GeoIP.dat; geoip_proxy 127.0.0.1; geoip_proxy ::1; geoip_proxy 10.0.0.0/8; geoip_proxy_recursive on;
2012-06-04Merge of r4617: fastcgi padding fix.Maxim Dounin1-4/+23
Fastcgi: fixed padding handling on fixed-size records. Padding was incorrectly ignored on end request, empty stdout and stderr fastcgi records. This resulted in protocol desynchronization if fastcgi application used these records with padding for some reason. Reported by Ilia Vinokurov.
2012-06-04Merge of r4616: r->state fix.Maxim Dounin3-0/+7
Added r->state reset on fastcgi/scgi/uwsgi request start. Failing to do so results in problems if 400 or 414 requests are redirected to fastcgi/scgi/uwsgi upstream, as well as after invalid headers got from upstream. This was already fixed for proxy in r3478, but fastcgi (the only affected protocol at that time) was missed. Reported by Matthieu Tourne.
2012-06-04Merge of r4612: proper subrequest handling in various modules.Maxim Dounin4-4/+4
2012-06-04Version bump.Maxim Dounin1-1/+1
2012-04-23Version bump.Maxim Dounin1-1/+1
2012-04-23Proxy: added ctx checking to input filters.Maxim Dounin1-0/+18
The proxy module context may be NULL in case of filter finalization (e.g. by image_filter) followed by an internal redirect. This needs some better handling, but for now just check if ctx is still here.
2012-04-21Image filter: compare aspect ratio more accurately during crop.Maxim Dounin1-3/+1
Previously used fixed-point calculation caused wrong code path selection in some cases, resulting in incorrect image size. See here for report: http://mailman.nginx.org/pipermail/nginx-devel/2012-April/002123.html
2012-04-12Fixed grammar in error messages.Ruslan Ermilov7-37/+37
2012-04-12Version bump.Maxim Dounin1-1/+1
2012-04-12Mp4: sanity checks cleanup.Maxim Dounin1-66/+208
2012-04-11Fixed directives inheritance.Ruslan Ermilov1-3/+5
2012-04-10Access module: fixed inheritance of allow/deny ipv6 rules.Maxim Dounin1-4/+9
Previous (incorrect) behaviour was to inherit ipv6 rules separately from ipv4 ones. Now all rules are either inherited (if there are no rules defined at current level) or not (if there are any rules defined).
2012-04-10Fixed debug logging.Igor Sysoev1-1/+1
2012-04-10Fixed previous commit.Igor Sysoev1-1/+1
2012-04-10Fixed mp4 module seek.Igor Sysoev1-1/+1
2012-04-03Fixed spelling in multiline C comments.Ruslan Ermilov1-1/+1
2012-04-02Version bump.Maxim Dounin1-1/+1
2012-03-29Corrected spelling of error message (ticket #136).Ruslan Ermilov1-1/+1
2012-03-28Replaced ngx_http_realip_from_t with ngx_in_cidr_t.Ruslan Ermilov1-10/+4
2012-03-28Fixed calculation of range boundaries.Ruslan Ermilov1-11/+8
2012-03-28Xslt: parser options now set with xmlCtxtUseOptions().Maxim Dounin1-3/+2
Note that "ctxt->loadsubset = 1" previously used isn't really correct as ctxt->loadsubset is a bitfield now. The use of xmlCtxtUseOptions() with XML_PARSE_DTDLOAD is believed to be a better way to do the same thing. Patch by Laurence Rowe.
2012-03-22Added xslt_param and xslt_string_param directives.Maxim Dounin1-33/+168
Based on patch by Samuel Behan.
2012-03-22Fixed off-by-one in xslt parameter parsing.Maxim Dounin1-1/+1
The problem was introduced in 0.7.44 (r2589) during conversion to complex values. Previously string.len included space for terminating NUL, but with complex values it doesn't.
2012-03-21If we inserted "Last-Modified" in r->headers_out.headers, don'tRuslan Ermilov1-0/+2
forget to set the r->headers_out.last_modified pointer to it.
2012-03-21Minor ngx_http_headers_filter_module.c code cleanup.Ruslan Ermilov1-22/+20
- Removed "hash" element from ngx_http_header_val_t which was always 1. - Replaced NGX_HTTP_EXPIRES_* with ngx_http_expires_t enum type. - Added prototype for ngx_http_add_header() - Simplified ngx_http_set_last_modified().
2012-03-15- New variable: $connection_requests.Ruslan Ermilov1-1/+13
- While here, fixed format specifier for $connection.
2012-03-15Version bump.Maxim Dounin1-1/+1
2012-03-15Fixed incorrect ngx_cpystrn() usage in ngx_http_*_process_header().Maxim Dounin4-10/+16
This resulted in a disclosure of previously freed memory if upstream server returned specially crafted response, potentially exposing sensitive information. Reported by Matthew Daley.
2012-03-15Fixed ssi and perl interaction.Maxim Dounin1-2/+12
Embedded perl module assumes there is a space for terminating NUL character, make sure to provide it in all situations by allocating one extra byte for value buffer. Default ssi_value_length is reduced accordingly to preserve 256 byte allocations. While here, fixed another one byte value buffer overrun possible in ssi_quoted_symbol_state. Reported by Matthew Daley.
2012-03-15Uwsgi: merged r->http_version fixes from scgi module.Maxim Dounin1-12/+3
Fixed incorrect use of r->http_version (r4372). Removed duplicate function declaration (r4373). Removed error if there is no Status header (r4374).
2012-03-05Whitespace fixes.Maxim Dounin3-3/+6
2012-03-05Version bump.Maxim Dounin1-1/+1
2012-02-28Fixed spelling in single-line comments.Ruslan Ermilov10-27/+27
2012-02-27Fix of rbtree lookup on hash collisions.Maxim Dounin2-41/+31
Previous code incorrectly assumed that nodes with identical keys are linked together. This might not be true after tree rebalance. Patch by Lanshun Zhou.
2012-02-27Disable symlinks: initialization of the "disable_symlinks" field inValentin Bartenev7-27/+38
ngx_open_file_info_t moved to a separate function. This is preparation for the "from=" parameter implementation of the "disable_symlinks" directive.
2012-02-27Added support for the 307 Temporary Redirect.Ruslan Ermilov2-1/+7
2012-02-20Version bump.Maxim Dounin1-1/+1
2012-02-13Support for disable_symlinks in various modules.Andrey Belov7-2/+61
2012-02-13Time parsing cleanup.Maxim Dounin3-12/+4
Nuke NGX_PARSE_LARGE_TIME, it's not used since 0.6.30. The only error ngx_parse_time() can currently return is NGX_ERROR, check it explicitly and make sure to cast it to appropriate type (either time_t or ngx_msec_t) to avoid signedness warnings on platforms with unsigned time_t (notably QNX).
2012-02-13Fixed build with embedded perl and --with-openssl.Maxim Dounin1-1/+5
2012-02-13Gzip filter: handling of empty flush buffers.Maxim Dounin1-4/+18
Empty flush buffers are legitimate and may happen e.g. due to $r->flush() calls in embedded perl. If there are no data buffered in zlib, deflate() will return Z_BUF_ERROR (i.e. no progress possible) without adding anything to output. Don't treat Z_BUF_ERROR as fatal and correctly send empty flush buffer if we have no data in output at all. See this thread for details: http://mailman.nginx.org/pipermail/nginx/2010-November/023693.html
2012-02-13Removed r->cache/r->cached dependencies in range filter.Maxim Dounin1-20/+6
This is a layering violation, use correct offset calculations instead.
2012-02-13Proxy: added the "proxy_cookie_path" directive.Valentin Bartenev1-4/+127
2012-02-13Proxy: added the "proxy_cookie_domain" directive.Valentin Bartenev1-0/+202
2012-02-13Proxy: generic regex related code from the "proxy_redirect" directive movedValentin Bartenev1-23/+47
to a separate function. No functional changes.
2012-02-13Proxy: generic rewrite code from the "proxy_redirect" handlers moved to aValentin Bartenev1-44/+52
separate function with trivial optimization. No functional changes.
2012-02-13Proxy: renamed some "proxy_redirect" related declarations to a more general andValentin Bartenev1-45/+45
reusable. No functional changes.
2012-02-10Limit conn: returned to the old behavior of using the first actual limit onValentin Bartenev1-2/+2
the way. It was unintentionally changed in r4272, so that it could only limit the first location where the processing of the request has reached PREACCESS phase.
2012-02-09Version bump.Maxim Dounin1-1/+1