aboutsummaryrefslogtreecommitdiff
path: root/src
Commit message (Collapse)AuthorAge
...
* Geo: improved code readability.Ruslan Ermilov2012-12-27
|
* Upstream keepalive: detect duplicate "keepalive" directive.Ruslan Ermilov2012-12-26
| | | | | A failure to detect duplicate "keepalive" directive resulted in stack exhaustion.
* Version bump.Ruslan Ermilov2012-12-26
|
* Geo: made "default" affect both IPv4 and IPv6 when using prefixes.Ruslan Ermilov2012-12-26
| | | | | | Previously, "default" was equivalent to specifying 0.0.0.0/0, now it's equivalent to specifying both 0.0.0.0/0 and ::/0 (if support for IPv6 is enabled) with the same value.
* Geo: properly initialize ngx_cidr_t when dealing with "default".Ruslan Ermilov2012-12-25
|
* Geo: IPv6 support.Ruslan Ermilov2012-12-25
| | | | The "ranges" mode is still limited to IPv4 only.
* Upstream: fixed state resetting when switching to backup servers.Valentin Bartenev2012-12-25
| | | | Based on patch by Thomas Chen (ticket #257).
* Fixed HEAD requests handling when proxying is used (closes #261).Valentin Bartenev2012-12-24
|
* Trailing whitespace fix.Ruslan Ermilov2012-12-24
|
* Access log: the "gzip" parameter of the "access_log" directive.Valentin Bartenev2012-12-23
| | | | Note: this requires zlib version 1.2.0.4 or above to work.
* Access log: the "flush" parameter of the "access_log" directive.Valentin Bartenev2012-12-23
|
* Reopening log files code moved to a separate function.Valentin Bartenev2012-12-23
| | | | | | The code refactored in a way to call custom handler that can do appropriate cleanup work (if any), like flushing buffers, finishing compress streams, finalizing connections to log daemon, etc..
* Access log: fixed redundant buffer reallocation.Valentin Bartenev2012-12-23
| | | | | Previously a new buffer was allocated for every "access_log" directive with the same file path and "buffer=" parameters, while only one buffer per file is used.
* Properly initialize "struct in6_addr" with zeroes.Ruslan Ermilov2012-12-22
|
* Core: crypt_r() error handling fixed.Maxim Dounin2012-12-21
| | | | | | | | | | | | The crypt_r() function returns NULL on errors, check it explicitly instead of assuming errno will remain 0 if there are no errors (per POSIX, the setting of errno after a successful call to a function is unspecified unless the description of that function specifies that errno shall not be modified). Additionally, dropped unneeded ngx_set_errno(0) and fixed error handling of memory allocation after normal crypt(), which was inapropriate and resulted in null pointer dereference on allocation failures.
* Image filter: fixed image_filter rotate inheritance.Maxim Dounin2012-12-21
| | | | | | | | | | | | | | | | | | Configurations like location /i/ { image_filter resize 200 200; image_filter rotate 180; location /i/foo/ { image_filter resize 200 200; } } resulted in rotation incorrectly applied in the location /i/foo, without any way to clear it. Fix is to handle conf->angle/conf->acv consistently with other filter variables and do not try to inherit them if there are transformations defined for current location.
* Geo: ensure that default entry is always present.Ruslan Ermilov2012-12-21
| | | | | If 0.0.0.0/32 entry was present and there was no explicit "default", we failed to add an empty string as a default value.
* There's no need to normalize address returned by ngx_ptocidr().Ruslan Ermilov2012-12-21
|
* Image filter: configuration inheritance fixes.Maxim Dounin2012-12-20
| | | | | | | | | | | | | | The image_filter_jpeg_quality, image_filter_sharpen and "image_filter rotate" were inherited incorrectly if a directive with variables was defined, and then redefined to a literal value, i.e. in configurations like image_filter_jpeg_quality $arg_q; location / { image_filter_jpeg_quality 50; } Patch by Ian Babrou, with minor changes.
* Brought the link to ngx_http_perl_module documentation up to date.Ruslan Ermilov2012-12-20
|
* Fixed return type of internal function that allocates radix tree nodes.Ruslan Ermilov2012-12-20
|
* Let "add_header" affect 201 responses (ticket #125).Ruslan Ermilov2012-12-19
|
* Slightly optimized code that handles special headers in "add_header".Ruslan Ermilov2012-12-19
|
* Avoid sending "100 Continue" on 413 Request Entity Too Large.Maxim Dounin2012-12-18
| | | | Patch by Igor Sysoev.
* Added checks that disallow adding a variable with an empty name.Ruslan Ermilov2012-12-17
| | | | Added variable name syntax checks to "geo" and "map" directives.
* Implemented IPv6 support for URLs specified using domain names.Ruslan Ermilov2012-12-17
| | | | | | | | | This includes "debug_connection", upstreams, "proxy_pass", etc. (ticket #92) To preserve compatibility, "listen" specified with a domain name selects the first IPv4 address, if available. If not available, the first IPv6 address will be used (ticket #186).
* Fixed URL parsing code.Ruslan Ermilov2012-12-17
| | | | | | The URL parsing code is not expected to initialize port from default port when in "no_resolve" mode. This got broken in r4671 for the case of IPv6 literals.
* Simplified URL parsing code.Ruslan Ermilov2012-12-17
| | | | | Except for the "listen" directive, "*" specified as a hostname is no longer treated specially.
* Geo: fixed the "ranges" without ranges case.Ruslan Ermilov2012-12-14
| | | | | | | | | The following configuration returned an empty value for $geo: geo $geo { ranges; default default; }
* Geo: improved ngx_http_geo_block() code readability.Ruslan Ermilov2012-12-14
|
* Fixed handling of ngx_write_fd() and ngx_read_fd() errors.Valentin Bartenev2012-12-14
| | | | | | | | | The ngx_write_fd() and ngx_read_fd() functions return -1 in case of error, so the incorrect comparison with NGX_FILE_ERROR (which is 0 on windows platforms) might result in inaccurate error message in the error log. Also the ngx_errno global variable is being set only if the returned value is -1.
* Gzip: fixed zlib memLevel adjusting.Valentin Bartenev2012-12-14
| | | | | | | An incorrect memLevel (lower than 1) might be passed to deflateInit2() if the "gzip_hash" directive is set to a value less than the value of "gzip_window" directive. This resulted in "deflateInit2() failed: -2" alert and an empty reply.
* Upstream: fixed SIGSEGV with the "if" directive.Maxim Dounin2012-12-13
| | | | | | | | | | | | | | | | | | | | | | | | | | | Configuration like location / { set $true 1; if ($true) { proxy_pass http://backend; } if ($true) { # nothing } } resulted in segmentation fault due to NULL pointer dereference as the upstream configuration wasn't initialized in an implicit location created by the last if(), but the r->content_handler was set due to first if(). Instead of committing a suicide by dereferencing a NULL pointer, return 500 (Internal Server Error) in such cases, i.e. if uscf is NULL. Better fix would be to avoid such cases by fixing the "if" directive handling, but it's out of scope of this patch. Prodded by Piotr Sikora.
* Fixed variable syntax checking in "set", "geo", "limit_conn_zone",Ruslan Ermilov2012-12-13
| | | | and "perl_set" directives.
* Proxy: better error message about unexpected data.Maxim Dounin2012-12-13
| | | | Requested by Igor Sysoev.
* Limit rate: fixed integer overflow in limit calculation (ticket #256).Valentin Bartenev2012-12-12
| | | | Patch by Alexey Antropov.
* The "auth_basic" directive gained support of variables.Ruslan Ermilov2012-12-10
|
* Allow the complex value to be defined as an empty string.Ruslan Ermilov2012-12-06
| | | | | This makes conversion from strings to complex values possible without the loss of functionality.
* Xslt: prevented infinite loop.Ruslan Ermilov2012-12-06
| | | | | If XSLT transformation failed and error 500 was handled in the same location, an infinite loop occured that exhausted the stack.
* Fixed build with embedded perl in certain setups (ticket #48).Ruslan Ermilov2012-12-03
|
* Fixed the NGX_SOCKADDR_STRLEN macro definition.Ruslan Ermilov2012-11-30
| | | | | The ngx_sock_ntop() function, when told to print both address and port, prints IPv6 address in square brackets, followed by colon and port.
* Core: removed GLOB_NOSORT glob option.Maxim Dounin2012-11-29
| | | | | | | | | | | This will result in alphabetical sorting of included files if the "include" directive with wildcards is used. Note that the behaviour is now different from that on Windows, where alphabetical sorting is not guaranteed for FindFirsFile()/FindNextFile() (used to be alphabetical on NTFS, but not on FAT). Approved by Igor Sysoev, prodded by many.
* Version bump.Maxim Dounin2012-11-29
|
* Gunzip: added missing ngx_http_clear_etag().Maxim Dounin2012-11-26
|
* Core: fixed ngx_write_chain_to_file() with IOV_MAX reached.Maxim Dounin2012-11-26
| | | | | | | Catched by dav_chunked.t on Solaris. In released versions this might potentially result in corruption of complex protocol responses if they were written to disk and there were more distinct buffers than IOV_MAX in a single write.
* Request body: block write events while reading body.Maxim Dounin2012-11-26
| | | | | | | | | | | | | | | | If write events are not blocked, an extra write event might happen for various reasons (e.g. as a result of a http pipelining), resulting in incorrect body being passed to a post handler. The problem manifested itself with the dav module only, as this is the only module which reads the body from a content phase handler (in contrast to exclusive content handlers like proxy). Additionally, dav module used to dump core in such situations due to ticket #238. See reports here: http://mailman.nginx.org/pipermail/nginx-devel/2012-November/002981.html http://serverfault.com/questions/449195/nginx-webdav-server-with-auth-request
* Request body: error checking fixes, negative rb->rest handling.Maxim Dounin2012-11-26
| | | | | | | Negative rb->rest can't happen with current code, but it's good to have it handled anyway. Found by Coverity (CID 744846, 744847, 744848).
* Request body: improved handling of incorrect chunked request body.Maxim Dounin2012-11-26
| | | | | | | | | | | While discarding chunked request body in some cases after detecting request body corruption no error was returned, while it was possible to correctly return 400 Bad Request. If error is detected too late, make sure to properly close connection. Additionally, in ngx_http_special_response_handler() don't return body of 500 Internal Server Error to a client if ngx_http_discard_request_body() fails, but disable keepalive and continue.
* Request body: fixed discard of chunked request body.Maxim Dounin2012-11-26
| | | | | | Even if there is no preread data, make sure to always call ngx_http_discard_request_body_filter() in case of chunked request body to initialize r->headers_in.content_length_n for later use.
* Core: don't reuse shared memory zone that changed ownership (ticket #210).Ruslan Ermilov2012-11-23
| | | | | | | nginx doesn't allow the same shared memory zone to be used for different purposes, but failed to check this on reconfiguration. If a shared memory zone was used for another purpose in the new configuration, nginx attempted to reuse it and crashed.