summaryrefslogtreecommitdiffhomepage
path: root/src/http/modules (follow)
AgeCommit message (Collapse)AuthorFilesLines
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
2012-01-30Limit req: unbreak compilation with MSVC.Maxim Dounin1-0/+4
2012-01-30Fixed proxy_redirect off inheritance.Valentin Bartenev1-0/+2
Example configuration to reproduce: server { proxy_redirect off; location / { proxy_pass http://localhost:8000; proxy_redirect http://localhost:8000/ /; location ~ \.php$ { proxy_pass http://localhost:8000; # proxy_redirect must be inherited from the level above, # but instead it was switched off here } } }
2012-01-30Limit req: support for multiple "limit_req" limits.Valentin Bartenev1-78/+229
2012-01-30Limit req: number of cleanup calls reduced.Valentin Bartenev1-2/+2
Doing a cleanup before every lookup seems to be too aggressive. It can lead to premature removal of the nodes still usable, which increases the amount of work under a mutex lock and therefore decreases performance. In order to improve cleanup behavior, cleanup function call has been moved right before the allocation of a new node.
2012-01-30Limit req: allocation and initialization of a new node moved to the lookupValentin Bartenev1-52/+45
function. No functional changes.
2012-01-30Limit req: improved error handling when parsing "zone" parameter ofValentin Bartenev1-15/+23
"limit_req_zone" directive; minimum size of zone is increased. Previously an unsigned variable was used to keep the return value of ngx_parse_size() function, which led to an incorrect zone size if NGX_ERROR was returned. The new code has been taken from the "limit_conn_zone" directive.
2012-01-30Limit req: error messages fixed.Valentin Bartenev1-4/+4
2012-01-18Copyright updated.Maxim Konovalov51-0/+51
2012-01-18Version bump.Maxim Konovalov1-1/+2
2012-01-16Fixed handling of mp4 above 2G and 32bit offsets (ticket #84).Maxim Dounin1-4/+4
2012-01-16Fixed proxy_cache_use_stale in "no live upstreams" case.Maxim Dounin4-5/+21
2012-01-11Added support for TLSv1.1, TLSv1.2 in ssl_protocols directive.Maxim Dounin2-2/+7
Support for TLSv1.1 and TLSv1.2 protocols was introduced in OpenSSL 1.0.1 (-beta1 was recently released). This change makes it possible to disable these protocols and/or enable them without other protocols.
2012-01-11Fixed limit_req burst/nodelay inheritance (ticket #76).Maxim Dounin1-0/+2
The problem was introduced in r4381 (1.1.12).
2012-01-10Fixed: proxy_redirect with regex might broke Refresh header.Valentin Bartenev1-1/+19
The problem was localized in ngx_http_proxy_rewrite_redirect_regex() handler function which did not take into account prefix when overwriting header value.
2011-12-27Version bump.Maxim Dounin1-1/+1
2011-12-26Cache lock support for fastcgi, scgi, uwsgi.Maxim Dounin3-0/+66
2011-12-26Cache locks initial implementation.Maxim Dounin1-0/+22
New directives: proxy_cache_lock on/off, proxy_cache_lock_timeout. With proxy_cache_lock set to on, only one request will be allowed to go to upstream for a particular cache item. Others will wait for a response to appear in cache (or cache lock released) up to proxy_cache_lock_timeout. Waiting requests will recheck if they have cached response ready (or are allowed to run) every 500ms. Note: we intentionally don't intercept NGX_DECLINED possibly returned by ngx_http_file_cache_read(). This needs more work (possibly safe, but needs further investigation). Anyway, it's exceptional situation. Note: probably there should be a way to disable caching of responses if there is already one request fetching resource to cache (without waiting at all). Two possible ways include another cache lock option ("no_cache") or using proxy_no_cache with some supplied variable. Note: probably there should be a way to lock updating requests as well. For now "proxy_cache_use_stale updating" is available.
2011-12-26Fixed mp4 if first entry in stsc was skipped (ticket #72).Maxim Dounin1-0/+2
If first entry in stsc atom was skipped, and seek was to chunk boundary, than first_chunk in the generated stsc table wasn't set to 1.
2011-12-25SSI: added regex captures support in the expression of the "if" command.Valentin Bartenev2-29/+148
2011-12-25Fixed limit_conn_log_level/limit_req_log_level inheritance.Valentin Bartenev2-2/+2
The directives did not work if there were no limit_conn/limit_req specified on the same level.
2011-12-23Proxy: made proxy_pass with variables more consistent.Maxim Dounin1-6/+3
If proxy_pass was used with variables and there was no URI component, nginx always used unparsed URI. This isn't consistent with "no variables" case, where e.g. rewrites are applied even if there is no URI component. Fix is to use the same logic in both cases, i.e. only use unparsed URI if it's valid and request is the main one.
2011-12-19SSI bugfix: the "if" command did not work inside the "block" command andValentin Bartenev1-10/+10
produced parsing errors.
2011-12-19Scgi: removed error if there is no Status header.Maxim Dounin1-3/+0
The SCGI specification doesn't specify format of the response, and assuming CGI specs should be used there is no reason to complain. RFC 3875 explicitly states that "A Status header field is optional, and status 200 'OK' is assumed if it is omitted".
2011-12-19Scgi: removed duplicate function declaration.Maxim Dounin1-1/+0
2011-12-19Fixed incorrect use of r->http_version in scgi module.Maxim Dounin1-9/+3
The r->http_version is a version of client's request, and modules must not set it unless they are really willing to downgrade protocol version used for a response (i.e. to HTTP/0.9 if no response headers are available). In neither case r->http_version may be upgraded. The former code downgraded response from HTTP/1.1 to HTTP/1.0 for no reason, causing various problems (see ticket #66). It was also possible that HTTP/0.9 requests were upgraded to HTTP/1.0.
2011-12-19Version bump.Maxim Dounin1-1/+1
2011-12-12Proxy: added variables and regexp support to the first parameter ofValentin Bartenev1-99/+119
the "proxy_redirect" directive.