]> git.kaiwu.me - nginx.git/log
nginx.git
14 years agoMerge of r4280:
Igor Sysoev [Mon, 14 Nov 2011 16:13:15 +0000 (16:13 +0000)]
Merge of r4280:

Reverted incorrect change in internal md5 (part of r3928).

14 years agoMerge of r4268:
Igor Sysoev [Mon, 14 Nov 2011 16:12:25 +0000 (16:12 +0000)]
Merge of r4268:

Fixed compression pointer processing in DNS response greater than 255 bytes.

Thanks to Ben Hawkes.

14 years agoVersion bump.
Igor Sysoev [Mon, 14 Nov 2011 15:53:35 +0000 (15:53 +0000)]
Version bump.

14 years agorelease-1.0.9 tag
Igor Sysoev [Tue, 1 Nov 2011 14:51:26 +0000 (14:51 +0000)]
release-1.0.9 tag

14 years agonginx-1.0.9-RELEASE release-1.0.9
Igor Sysoev [Tue, 1 Nov 2011 14:51:19 +0000 (14:51 +0000)]
nginx-1.0.9-RELEASE

14 years agoSurplus CHANGES line removal.
Igor Sysoev [Tue, 1 Nov 2011 14:39:36 +0000 (14:39 +0000)]
Surplus CHANGES line removal.

14 years agoMerging r4236:
Igor Sysoev [Tue, 1 Nov 2011 14:21:22 +0000 (14:21 +0000)]
Merging r4236:

Fixed documentation pointer.

14 years agoMerging r4210:
Igor Sysoev [Tue, 1 Nov 2011 14:20:43 +0000 (14:20 +0000)]
Merging r4210:

Fixed utf8 decode (ticket #25).

Patch by Alexey Kuts.

14 years agoMerging r4209:
Igor Sysoev [Tue, 1 Nov 2011 14:19:13 +0000 (14:19 +0000)]
Merging r4209:

Skipping location rewrite phase for server null location.

14 years agoMerging r4198:
Igor Sysoev [Tue, 1 Nov 2011 14:18:10 +0000 (14:18 +0000)]
Merging r4198:

Additional headers for proxy/fastcgi/uwsgi/scgi_ignore_headers.

Now the following headers may be ignored as well: X-Accel-Limit-Rate,
X-Accel-Buffering, X-Accel-Charset.

14 years agoMerging r4189, r4197:
Igor Sysoev [Tue, 1 Nov 2011 14:15:42 +0000 (14:15 +0000)]
Merging r4189, r4197:

Perl related fixes:

*) Handling of Content-Encoding set from perl.

   This fixes double gzipping in case of gzip filter being enabled while perl
   returns already gzipped response.

*) Fixed macro name.

14 years agoMerging r4195, r4196:
Igor Sysoev [Tue, 1 Nov 2011 14:13:25 +0000 (14:13 +0000)]
Merging r4195, r4196:

AIO related fixes:

*) Fix for connection drops with AIO.

   Connections serving content with AIO to fast clients were dropped with
   "client timed out" messages after send_timeout from response start.

*) Fix for socket leak with "aio sendfile" and "limit_rate".

   Second aio post happened when timer set by limit_rate expired while we have
   aio request in flight, resulting in "second aio post" alert and socket leak.

   The patch adds actual protection from aio calls with r->aio already set to
   aio sendfile code in ngx_http_copy_filter().  This should fix other cases
   as well, e.g. when sending buffered to disk upstream replies while still
   talking to upstream.

   The ngx_http_writer() is also fixed to handle the above case (though it's
   mostly optimization now).

14 years agoMerging r4193, r4194:
Igor Sysoev [Tue, 1 Nov 2011 14:09:15 +0000 (14:09 +0000)]
Merging r4193, r4194:

Autoindex fixes:

*) Autoindex: escape '?' in file names.

   For files with '?' in their names autoindex generated links with '?' not
   escaped.  This resulted in effectively truncated links as '?' indicates
   query string start.

   This is an updated version of the patch originally posted at [1].  It
   introduces generic NGX_ESCAPE_URI_COMPONENT which escapes everything but
   unreserved characters as per RFC 3986.  This approach also renders unneeded
   special colon processing (as colon is percent-encoded now), it's dropped
   accordingly.

   [1] http://nginx.org/pipermail/nginx-devel/2010-February/000112.html

*) Autoindex: escape html in file names.

14 years agoMerging r4158:
Igor Sysoev [Tue, 1 Nov 2011 14:04:23 +0000 (14:04 +0000)]
Merging r4158:

Added uwsgi_buffering and scgi_buffering directives.

Patch by Peter Smit.

14 years agoMerging r4190, r4232:
Igor Sysoev [Tue, 1 Nov 2011 14:02:07 +0000 (14:02 +0000)]
Merging r4190, r4232:

MP4 related fixes:

*) Fixing mp4 module seeking on 32-bit platforms.

*) Adding m4a and m4v MIME types (ticket #42).

14 years agoMerging r4179, r4182, r4212:
Igor Sysoev [Tue, 1 Nov 2011 14:00:04 +0000 (14:00 +0000)]
Merging r4179, r4182, r4212:

Adding RELEASE procedure in GNUmakefile.

14 years agoMerging r4155, r4219, r4220, r4230:
Igor Sysoev [Tue, 1 Nov 2011 13:56:26 +0000 (13:56 +0000)]
Merging r4155, r4219, r4220, r4230:

Windows related fixes:

*) Fixed segmentation fault with empty config on Windows.
   See here for report:
   http://mailman.nginx.org/pipermail/nginx-ru/2011-September/043288.html

*) Recent SDKs allow to build IPV6 only for Windows XP or above.

*) Fixing conflict with SDK off_t definition.

*) Fix of building by Microsoft Visual C++ 10 compiler.

14 years agoMerging r4151, r4152, r4177:
Igor Sysoev [Tue, 1 Nov 2011 13:49:31 +0000 (13:49 +0000)]
Merging r4151, r4152, r4177:

HTTP cache related fixes:

*) Cache: fix for sending of empty responses.

   Revert wrong fix for empty responses introduced in 0.8.31 and apply new
   one, rewritten to match things done by static module as close as possible.

*) Cache: fix for sending of stale responses.

   For normal cached responses ngx_http_cache_send() sends last buffer and then
   request finalized via ngx_http_finalize_request() call, i.e. everything is
   ok.

   But for stale responses (i.e. when upstream died, but we have something in
   cache) the same ngx_http_cache_send() sends last buffer, but then in
   ngx_http_upstream_finalize_request() another last buffer is send.  This
   causes duplicate final chunk to appear if chunked encoding is used (and
   resulting problems with keepalive connections and so on).

   Fix this by not sending in ngx_http_upstream_finalize_request()
   another last buffer if we know response was from cache.

*) Fixed cache bypass caching of non-cacheable replies (ticket #21).

   If cache was bypassed with proxy_cache_bypass, cache-controlling headers
   (Cache-Control, Expires) wasn't considered and response was cached even
   if it was actually non-cacheable.

   Patch by John Ferlito.

14 years agoMerging r4147, r4148, r4149, r4150, r4207:
Igor Sysoev [Tue, 1 Nov 2011 13:45:33 +0000 (13:45 +0000)]
Merging r4147, r4148, r4149, r4150, r4207:

Fixes of combination of error_page and return directives:

*) Fix for incorrect 201 replies from dav module.

   Replies with 201 code contain body, and we should clearly indicate it's
   empty if it's empty.  Before 0.8.32 chunked was explicitly disabled for
   201 replies and as a result empty body was indicated by connection close
   (not perfect, but worked).  Since 0.8.32 chunked is enabled, and this
   causes incorrect responses from dav module when HTTP/1.1 is used: with
   "Transfer-Encoding: chunked" but no chunks at all.

   Fix is to actually return empty body in special response handler instead
   of abusing r->header_only flag.

   See here for initial report:
   http://mailman.nginx.org/pipermail/nginx-ru/2010-October/037535.html

*) Fix for double content when return is used in error_page handler.

   Test case:

      location / {
          error_page 405 /nope;
          return 405;
      }

      location /nope {
          return 200;
      }

   This is expected to return 405 with empty body, but in 0.8.42+ will return
   builtin 405 error page as well (though not counted in Content-Length, thus
   breaking protocol).

   Fix is to use status provided by rewrite script execution in case
   it's less than NGX_HTTP_BAD_REQUEST even if r->error_status set.  This
   check is in line with one in ngx_http_script_return_code().

   Note that this patch also changes behaviour for "return 302 ..." and
   "rewrite ... redirect" used as error handler.  E.g.

       location / {
           error_page 405 /redirect;
           return 405;
       }

       location /redirect {
           rewrite ^ http://example.com/;
       }

   will actually return redirect to "http://example.com/" instead of builtin
   405 error page with meaningless Location header.  This looks like correct
   change and it's in line with what happens on e.g. directory redirects
   in error handlers.

*) Fix for "return 202" not discarding body.

   Big POST (not fully preread) to a

       location / {
           return 202;
       }

   resulted in incorrect behaviour due to "return" code path not calling
   ngx_http_discard_request_body().  The same applies to all "return" used
   with 2xx/3xx codes except 201 and 204, and to all "return ... text" uses.

   Fix is to add ngx_http_discard_request_body() call to
   ngx_http_send_response() function where it looks appropriate.
   Discard body call from emtpy gif module removed as it's now redundant.

   Reported by Pyry Hakulinen, see
   http://mailman.nginx.org/pipermail/nginx/2011-August/028503.html

*) Incorrect special case for "return 204" removed.

   The special case in question leads to replies without body in
   configuration like

       location / { error_page 404 /zero; return 404; }
       location /zero { return 204; }

   while replies with empty body are expected per protocol specs.

   Correct one will look like

       if (status == NGX_HTTP_NO_CONTENT) {

           rc = ngx_http_send_header(r);

           if (rc == NGX_ERROR || r->header_only) {
               return rc;
           }

           return ngx_http_send_special(r, NGX_HTTP_LAST);
       }

   though it looks like it's better to drop this special case at all.

*) Clear old Location header (if any) while adding a new one.

   This prevents incorrect behaviour when another redirect is issued within
   error_page 302 handler.

14 years agoMerging r4132, r4134, r4143, r4183, r4191, r4199:
Igor Sysoev [Tue, 1 Nov 2011 13:24:50 +0000 (13:24 +0000)]
Merging r4132, r4134, r4143, r4183, r4191, r4199:

Various fixes related to error messages:

*) Removed old warning that suggested to use "server_name_in_redirect off"
   (now the default) in place of no longer supported "server_name *".

*) Fixing directive name in error message if types hash size is not enough.

*) Replaced "can not" with "cannot" and "could not" in a bunch of places.
   Fixed nearby grammar errors.

*) Overhauled error messages.

14 years agoMerging r4034, r4186, r4187, r4229, r4235, r4237:
Igor Sysoev [Tue, 1 Nov 2011 13:00:30 +0000 (13:00 +0000)]
Merging r4034, r4186, r4187, r4229, r4235, r4237:

SSL related fixes:

*) Better handling of various per-server ssl options with SNI.

   SSL_set_SSL_CTX() doesn't touch values cached within ssl connection
   structure, it only changes certificates (at least as of now, OpenSSL
   1.0.0d and earlier).

   As a result settings like ssl_verify_client, ssl_verify_depth,
   ssl_prefer_server_ciphers are only configurable on per-socket basis while
   with SNI it should be possible to specify them different for two servers
   listening on the same socket.

   Workaround is to explicitly re-apply settings we care about from context
   to ssl connection in servername callback.

   Note that SSL_clear_options() is only available in OpenSSL 0.9.8m+.  I.e.
   with older versions it is not possible to clear ssl_prefer_server_ciphers
   option if it's set in default server for a socket.

*) Disabling SSL compression. This saves about 300K per SSL connection.
   The SSL_OP_NO_COMPRESSION option is available since OpenSSL 1.0.0.

*) Releasing memory of idle SSL connection. This saves about 34K per SSL
   connection. The SSL_MODE_RELEASE_BUFFERS option is available since
   OpenSSL 1.0.0d.

*) Decrease of log level of some SSL handshake errors.

*) Fixed segfault on configuration testing with ssl (ticket #37).

   The following config caused segmentation fault due to conf->file not
   being properly set if "ssl on" was inherited from the http level:

   http {
       ssl on;
       server {
       }
   }

*) Silently ignoring a stale global SSL error left after disabled renegotiation.

14 years agoMerging r4020:
Igor Sysoev [Tue, 1 Nov 2011 11:26:56 +0000 (11:26 +0000)]
Merging r4020:

SIGWINCH/NOACCEPT signal is disabled now in non-daemon mode.
Non-daemon mode is currently used by supervisord, daemontools and so on
or during debugging. The NOACCEPT signal is only used for online upgrade
which is not supported when nginx is run under supervisord, etc.,
so this change should not break existant setups.

14 years agoMerging r4017:
Igor Sysoev [Tue, 1 Nov 2011 11:25:15 +0000 (11:25 +0000)]
Merging r4017:

Move SO_ACCEPTFILTER and TCP_DEFER_ACCEPT checks into configure.

NetBSD 5.0+ has SO_ACCEPTFILTER support merged from FreeBSD, and having
accept filter check in FreeBSD-specific ngx_freebsd_config.h prevents it
from being used on NetBSD.  Therefore move the check into configure (and
do the same for Linux-specific TCP_DEFER_ACCEPT, just to be in line).

14 years agoMerging r4013, r4200:
Igor Sysoev [Tue, 1 Nov 2011 11:23:26 +0000 (11:23 +0000)]
Merging r4013, r4200:

error_log related fixes:

*) Complain on invalid log levels.

   Previously only first log level was required to be correct, while
   error_log directive in fact accepts list of levels (e.g. one may
   specify "error_log ... debug_core debug_http;").  This resulted
   in (avoidable) wierd behaviour on missing semicolon after error_log
   directive, e.g.

       error_log /path/to/log info
       index index.php;

   silently skipped index directive and it's arguments (trying to
   interpret them as log levels without checking to be correct).

*) Fixed configuration summary and manpage contents for the special
   --error-log-path=stderr case.

14 years agoMerging r4009, r4133, r4184, r4201, r4202, r4203, r4204, r4205:
Igor Sysoev [Tue, 1 Nov 2011 11:19:58 +0000 (11:19 +0000)]
Merging r4009, r4133, r4184, r4201, r4202, r4203, r4204, r4205:

Miscellaneous fixes:

*) Fix of names of the referer hash size directives introduced in r3940.

*) Cosmetics: replaced NGX_CONF_TAKE1 to NGX_CONF_FLAG for "sendfile"
   and "chunked_transfer_encoding" directives, to be in line with all
   directives taking a boolean argument.  Both flags will ensure that
   a directive takes one argument.

*) Improved ngx_parse_time() code readability.

*) Preallocating exact number of default MIME types entries.

*) Stylistic change in checking the boolean expression.

*) Replaced magic constants representing default values of some directives
   with appropriate #define's.

*) Fixed grammar in a comment.

*) Fixed two minor bugs in "types" parsing code.

14 years agoMerging r3992, r4192:
Igor Sysoev [Tue, 1 Nov 2011 11:06:31 +0000 (11:06 +0000)]
Merging r3992, r4192:

access_log related fixes:

*) Removal of error message about %name log_format parameters,
   they have been deleted long ago in 0.5.0-RELEASE.

*) Improved access log escaping to better protect other software.
   Some character sets (notably ISO-8859-1) have C1 control characters in
   upper half, make sure to escape them.

14 years agoVersion bump.
Igor Sysoev [Tue, 1 Nov 2011 10:10:50 +0000 (10:10 +0000)]
Version bump.

14 years agorelease-1.0.8 tag
Igor Sysoev [Sat, 1 Oct 2011 06:00:49 +0000 (06:00 +0000)]
release-1.0.8 tag

14 years agonginx-1.0.8-RELEASE release-1.0.8
Igor Sysoev [Sat, 1 Oct 2011 06:00:42 +0000 (06:00 +0000)]
nginx-1.0.8-RELEASE

14 years agoMerging r4089 missed in r4170 merge.
Igor Sysoev [Sat, 1 Oct 2011 05:37:30 +0000 (05:37 +0000)]
Merging r4089 missed in r4170 merge.

14 years agoVersion bump.
Igor Sysoev [Sat, 1 Oct 2011 05:35:34 +0000 (05:35 +0000)]
Version bump.

14 years agorelease-1.0.7 tag
Igor Sysoev [Fri, 30 Sep 2011 15:35:30 +0000 (15:35 +0000)]
release-1.0.7 tag

14 years agonginx-1.0.7-RELEASE release-1.0.7
Igor Sysoev [Fri, 30 Sep 2011 15:35:23 +0000 (15:35 +0000)]
nginx-1.0.7-RELEASE

14 years agoMerging r4086, r4087, r4088, r4090, r4094, r4095, r4096, r4097, r4099, r4100,
Igor Sysoev [Fri, 30 Sep 2011 15:13:47 +0000 (15:13 +0000)]
Merging r4086, r4087, r4088, r4090, r4094, r4095, r4096, r4097, r4099, r4100,
r4106, r4107, r4108, r4113, r4156, r4157:

*) ngx_http_mp4_module.
*) "video/mp4" mime type added.

14 years agoMerging r3986, r4006, r4007, r4073:
Igor Sysoev [Fri, 30 Sep 2011 14:36:19 +0000 (14:36 +0000)]
Merging r3986, r4006, r4007, r4073:

Request body related fixes:

*) Always set timer in discard body handler, this fixes the cases
when request for static file is redirected by error_page to an SSI page.

*) Correctly set body if it's preread and there are extra data.

Previously all available data was used as body, resulting in garbage after
real body e.g. in case of pipelined requests.  Make sure to use only as many
bytes as request's Content-Length specifies.

*) Fix body with request_body_in_single_buf.

If there were preread data and request body was big enough first part
of the request body was duplicated.

See report here:
http://mailman.nginx.org/pipermail/nginx/2011-July/027756.html

*) Bugfix: read event was not blocked after reading body.

Read event should be blocked after reading body, else undefined behaviour
might occur on additional client activity.  This fixes segmentation faults
observed with proxy_ignore_client_abort set.

14 years agoMerging r4011, r4012, r4136:
Igor Sysoev [Fri, 30 Sep 2011 14:30:01 +0000 (14:30 +0000)]
Merging r4011, r4012, r4136:

Proxy related fixes:

*) Fixing cpu hog with all upstream servers marked "down".

The following configuration causes nginx to hog cpu due to infinite loop
in ngx_http_upstream_get_peer():

    upstream backend {
        server 127.0.0.1:8080 down;
        server 127.0.0.1:8080 down;
    }

    server {
       ...
       location / {
           proxy_pass http://backend;
       }
    }

Make sure we don't loop infinitely in ngx_http_upstream_get_peer() but stop
after resetting peer weights once.

Return 0 if we are stuck.  This is guaranteed to work as peer 0 always exists,
and eventually ngx_http_upstream_get_round_robin_peer() will do the right
thing falling back to backup servers or returning NGX_BUSY.

*) Upstream: properly allocate memory for tried flags.

Previous allocation only took into account number of non-backup servers, and
this caused memory corruption with many backup servers.

See report here:
http://mailman.nginx.org/pipermail/nginx/2011-May/026531.html

*) Fix of cpu hog in event pipe.

If client closed connection in ngx_event_pipe_write_to_downstream(), buffers
in the "out" chain were lost.  This caused cpu hog if all available buffers
were in the "out" chain.  Fix is to call ngx_chain_update_chains() before
checking return code of output filter to avoid loosing buffers in the "out"
chain.

Note that this situation (all available buffers in the "out" chain) isn't
normal, it should be prevented by busy buffers limit.  Though right now it
may happen with complex protocols like fastcgi.  This should be addressed
separately.

14 years agoMerging r4114, r4129:
Igor Sysoev [Fri, 30 Sep 2011 14:20:52 +0000 (14:20 +0000)]
Merging r4114, r4129:

Buffers reuse in chunked filter.

There were 2 buffers allocated on each buffer chain sent through chunked
filter (one buffer for chunk size, another one for trailing CRLF, about
120 bytes in total on 32-bit platforms).  This resulted in large memory
consumption with long-lived requests sending many buffer chains.  Usual
example of problematic scenario is streaming though proxy with
proxy_buffering set to off.

Introduced buffers reuse reduces memory consumption in the above problematic
scenario.

See here for initial report:
http://mailman.nginx.org/pipermail/nginx/2010-April/019814.html

14 years agoMerging r4137:
Igor Sysoev [Fri, 30 Sep 2011 14:18:58 +0000 (14:18 +0000)]
Merging r4137:

Fixed loss of chain links in fastcgi module.

14 years agoMerging r4130, r4131, r4135:
Igor Sysoev [Fri, 30 Sep 2011 14:12:53 +0000 (14:12 +0000)]
Merging r4130, r4131, r4135:

Linux AIO related fixes:

*) Fixing Linux AIO syscalls return value handling:
syscall(2) uses usual libc convention, it returns -1 on error and
sets errno. Obsolete _syscall(2) returns negative value of error.

*) Fixing Linux AIO initiatialization: AIO operations are disabled
if kernel does not support them.  Previously worker just exited.

*) The "worker_aio_requests" directive.

The default value is 32 AIO simultaneous requests per worker. Previously
they were hardcoded to 1024, and it was too large, since Linux allocated
them early on io_setup(), but not on request itself. So with default value
of /proc/sys/fs/aio-max-nr equal to 65536 only 64 worker processes could
be run simultaneously. 32 AIO requests are enough for modern disks even if
server runs only 1 worker.

14 years agoMerging r4098:
Igor Sysoev [Fri, 30 Sep 2011 14:09:44 +0000 (14:09 +0000)]
Merging r4098:

In Mac OS X Lion, Apple deprecated the use of the system OpenSSL library
in favour of their CommonCrypto library.  This change adds a work-around
that allows nginx to still be built on Lion with OpenSSL.

14 years agoMerging r4036, r4055, r4056, r4057, r4058, r4059, r4060, r4061, r4062, r4063,
Igor Sysoev [Fri, 30 Sep 2011 14:06:08 +0000 (14:06 +0000)]
Merging r4036, r4055, r4056, r4057, r4058, r4059, r4060, r4061, r4062, r4063,
r4064:

Ranges related fixes:

The "max_ranges" directive.
"max_ranges 0" disables ranges support at all,
"max_ranges 1" allows the single range, etc.
By default number of ranges is unlimited, to be precise, 2^31-1.

If client requests more ranges than "max_ranges" permits,
nginx disables ranges and returns just the source response.

If total size of all ranges is greater than source response size,
then nginx disables ranges and returns just the source response.
This fix should not affect well-behaving applications but will defeat
DoS attempts exploiting malicious byte ranges.

Now unsatisfiable ranges are processed according to RFC 2616.

14 years agoMerging r4077, r4101, r4102:
Igor Sysoev [Fri, 30 Sep 2011 13:57:44 +0000 (13:57 +0000)]
Merging r4077, r4101, r4102:

open_file_cache related fixes:

*) Bugfix: open_file_cache lost is_directio flag.

On file retest open_file_cache lost is_directio if file wasn't changed.
This caused unaligned operations under Linux to fail with EINVAL.
It wasn't noticeable with AIO though, as errors wasn't properly logged.

*) Bugfix: open_file_cache did not update file info on retest.

If file inode was not changed, cached file information was not updated
on retest.  As a result stale information might be cached forever if file
attributes was changed and/or file was extended.

14 years agoMerging r4010, r4065:
Igor Sysoev [Fri, 30 Sep 2011 13:42:59 +0000 (13:42 +0000)]
Merging r4010, r4065:

SSL related fixes:

*) Fixing proxy_set_body and proxy_pass_request_body with SSL.

Flush flag wasn't set in constructed buffer and this prevented any data
from being actually sent to upstream due to SSL buffering.  Make sure
we always set flush in the last buffer we are going to sent.

See here for report:
http://nginx.org/pipermail/nginx-ru/2011-June/041552.html

*) Proper SSL shutdown handling.

If connection has unsent alerts, SSL_shutdown() tries to send them even
if SSL_set_shutdown(SSL_RECEIVED_SHUTDOWN|SSL_SENT_SHUTDOWN) was used.
This can be prevented by SSL_set_quiet_shutdown().  SSL_set_shutdown()
is required nevertheless to preserve session.

14 years agoMerging r3933, r4154:
Igor Sysoev [Fri, 30 Sep 2011 13:36:33 +0000 (13:36 +0000)]
Merging r3933, r4154:

A new fix for the case when ssl_session_cache defined, but ssl is not
enabled in any server. The previous r1033 does not help when unused zone
becomes used after reconfiguration, so it is backed out.

The initial thought was to make SSL modules independed from SSL implementation
and to keep OpenSSL code dependance as much as in separate files.

14 years agoVersion bump.
Igor Sysoev [Fri, 30 Sep 2011 13:24:49 +0000 (13:24 +0000)]
Version bump.

14 years agoFix of release date.
Igor Sysoev [Mon, 29 Aug 2011 14:43:51 +0000 (14:43 +0000)]
Fix of release date.

14 years agorelease-1.0.6 tag
Igor Sysoev [Mon, 29 Aug 2011 14:28:31 +0000 (14:28 +0000)]
release-1.0.6 tag

14 years agonginx-1.0.6-RELEASE release-1.0.6
Igor Sysoev [Mon, 29 Aug 2011 14:28:23 +0000 (14:28 +0000)]
nginx-1.0.6-RELEASE

14 years agoMerge of r4016:
Igor Sysoev [Mon, 29 Aug 2011 14:13:46 +0000 (14:13 +0000)]
Merge of r4016:

Fix ignored headers handling in fastcgi/scgi/uwsgi.

The bug had appeared in r3561 (fastcgi), r3638 (scgi), r3567 (uwsgi).

14 years agoGetting rid of " <br/>" hacks.
Igor Sysoev [Mon, 29 Aug 2011 14:03:06 +0000 (14:03 +0000)]
Getting rid of " <br/>" hacks.

14 years agoCHANGES conversion from KOI8-R to UTF-8.
Igor Sysoev [Mon, 29 Aug 2011 14:02:15 +0000 (14:02 +0000)]
CHANGES conversion from KOI8-R to UTF-8.

14 years agoMerge of r3996, r3998, r4015, r4023, r4025, r4026, r4027:
Igor Sysoev [Mon, 29 Aug 2011 13:57:43 +0000 (13:57 +0000)]
Merge of r3996, r3998, r4015, r4023, r4025, r4026, r4027:

Changes log build procedure fixes:

*) using sed instead of perl
*) support <br/> in the middle of input
*) fixed "<br>" lookup (eliminates the need in " <br/>" hacks)
*) fixed maximum length for unbreakable input
*) fixed space lookup (allows a space at column 77 to break a line)
*) traling spaces removal in text CHANGES files.

14 years agoMerge of r4018:
Igor Sysoev [Mon, 29 Aug 2011 13:11:47 +0000 (13:11 +0000)]
Merge of r4018:

Fix buffer overrun under Windows.

14 years agoMerge of r3964, r3977, r3978:
Igor Sysoev [Mon, 29 Aug 2011 12:56:09 +0000 (12:56 +0000)]
Merge of r3964, r3977, r3978:

Proxy related fixes:

*) finalizing with rc == 0 in unbuffered proxy mode caused nginx to wait
   for another send_timeout before actually closing client's connection
   if client timed out while still talking to upstream server
*) update r3945 with more descriptive error message
*) test length of proxy_pass with variables;
   patch by Lanshun Zhou

14 years agoMerge of r4004, r4005:
Igor Sysoev [Mon, 29 Aug 2011 12:50:35 +0000 (12:50 +0000)]
Merge of r4004, r4005:

Solaris related fixes:

*) Detect POSIX semaphores in librt on Solaris (ticket #3).
   Patch by Denis Ivanov.
*) Lower optimization level for Sun Studio before 12.1.
   At least Sun Studio 12 has problems with bit-fields exposed by nginx code
   (caught by test suite).  They seems to be fixed in Sun Studio 12.1.  As a
   workaround use "-fast -xalias_level=any" for older versions, it resolves
   the problem.

14 years agoMerge of r4003:
Igor Sysoev [Mon, 29 Aug 2011 12:47:32 +0000 (12:47 +0000)]
Merge of r4003:

Configure: catch up with new Linux version numbering (ticket #5).

Catch up with new Linux version numbering scheme as announced at [1] and
suppress unrecognized versions to actually use default 0.

[1] https://lkml.org/lkml/2011/5/29/204

14 years agoMerge of r3982, r3984, r3985, r3991:
Igor Sysoev [Mon, 29 Aug 2011 12:45:03 +0000 (12:45 +0000)]
Merge of r3982, r3984, r3985, r3991:

Lingering closing related fixes:

*) lingering_close "off|on|always"
*) enable lingering close for pipelined requests
*) do not send RST on normal lingering close read timeout,
   if reset_timedout_connection is on

14 years agoMerge of r3960, r3961, r3962, r3963, r3965:
Igor Sysoev [Mon, 29 Aug 2011 12:35:53 +0000 (12:35 +0000)]
Merge of r3960, r3961, r3962, r3963, r3965:

SSL related fixes:

*) MSIE export versions are rare now, so RSA 512 key is generated on demand
   and is shared among all hosts instead of pregenerating for every HTTPS host
   on configuraiton phase. This decreases start time for configuration with
   large number of HTTPS hosts.
*) ECDHE support; patch by Adrian Kotelba
*) fix build by gcc46 with -Wunused-value option
*) fix SSL connection issues on platforms with 32-bit off_t
*) do not try to reuse and save a SSL session for a peer created on the fly
   by ngx_http_upstream_create_round_robin_peer(), since the peer lives
   only during request so the saved SSL session will never be used again
   and just causes memory leak

14 years agoMerge of r3979, r3980, r3981, r3983, r3987, r3994, r3995:
Igor Sysoev [Mon, 29 Aug 2011 10:39:23 +0000 (10:39 +0000)]
Merge of r3979, r3980, r3981, r3983, r3987, r3994, r3995:

Accept-Encoding refactoring:
*) "gzip; q=0" support
*) and removal of ancient MSIE 4.x test for gzip

14 years agoMerge of r3972, r3973, r3974:
Igor Sysoev [Mon, 29 Aug 2011 10:07:58 +0000 (10:07 +0000)]
Merge of r3972, r3973, r3974:

Cache fixes:

*) do not close connection if cache file is too small: replace it with
   valid one
*) rename ngx_http_file_cache_manager_sleep() to
   ngx_http_file_cache_loader_sleep() and do not use it all in cache manager:
   this is a vestige of the times when cache manager loaded cache
*) set correct configuration file values while adding path

14 years agoMerge of r3966, r3967, r3968, r3969, r3970, r3971:
Igor Sysoev [Mon, 29 Aug 2011 09:51:56 +0000 (09:51 +0000)]
Merge of r3966, r3967, r3968, r3969, r3970, r3971:

Cache loader improvements:

The cache loader performs two tasks: inserting cache objects in inactivity
list and evaluating total cache size. Reading just directory is enough for
this purpose. Elimination of reading cache files saves at least one disk I/O
operation per file.

14 years agoMerge of r4035:
Igor Sysoev [Mon, 29 Aug 2011 09:35:00 +0000 (09:35 +0000)]
Merge of r4035:

Cache size accounting fix: actual cache size on disk was less than
needed by sum of sizes of files loaded by worker processes themselves
while cache loader was running.

The bug has been introduced in r3900.

14 years agoVersion bump.
Igor Sysoev [Mon, 29 Aug 2011 09:30:22 +0000 (09:30 +0000)]
Version bump.

14 years agostable-1.0 branch
Igor Sysoev [Tue, 19 Jul 2011 14:57:06 +0000 (14:57 +0000)]
stable-1.0 branch

14 years agorelease-1.0.5 tag
Igor Sysoev [Tue, 19 Jul 2011 13:38:44 +0000 (13:38 +0000)]
release-1.0.5 tag

14 years agonginx-1.0.5-RELEASE release-1.0.5
Igor Sysoev [Tue, 19 Jul 2011 13:38:37 +0000 (13:38 +0000)]
nginx-1.0.5-RELEASE

14 years agofix segfault if cache key is larger than upstream buffer size
Igor Sysoev [Tue, 19 Jul 2011 11:24:16 +0000 (11:24 +0000)]
fix segfault if cache key is larger than upstream buffer size
patch by Lanshun Zhou

14 years ago$uid_reset
Igor Sysoev [Tue, 19 Jul 2011 11:21:50 +0000 (11:21 +0000)]
$uid_reset

14 years agofix r3756: release lock to allow other process to delete cache node
Igor Sysoev [Tue, 19 Jul 2011 10:35:02 +0000 (10:35 +0000)]
fix r3756: release lock to allow other process to delete cache node
patch by Maxim Dounin

14 years agofix building by MSVC
Igor Sysoev [Mon, 18 Jul 2011 15:00:05 +0000 (15:00 +0000)]
fix building by MSVC

14 years agorevert r3935 and fix "stalled cache updating" alert
Igor Sysoev [Tue, 28 Jun 2011 13:26:08 +0000 (13:26 +0000)]
revert r3935 and fix "stalled cache updating" alert
by freeing cache at upstream finalize phase
patch by Maxim Dounin

14 years agoreferer_hash_max_size and referer_hash_bucket_size directives
Igor Sysoev [Tue, 28 Jun 2011 10:40:44 +0000 (10:40 +0000)]
referer_hash_max_size and referer_hash_bucket_size directives
patch by Witold Filipczyk

14 years agouse !aNULL to disable all anonymous cipher suites
Igor Sysoev [Mon, 27 Jun 2011 15:47:51 +0000 (15:47 +0000)]
use !aNULL to disable all anonymous cipher suites
patch by Rob Stradling

14 years agobump version
Igor Sysoev [Mon, 27 Jun 2011 15:34:44 +0000 (15:34 +0000)]
bump version

14 years agorelease-1.0.4 tag
Igor Sysoev [Wed, 1 Jun 2011 09:29:59 +0000 (09:29 +0000)]
release-1.0.4 tag

14 years agonginx-1.0.4-RELEASE release-1.0.4
Igor Sysoev [Wed, 1 Jun 2011 09:29:58 +0000 (09:29 +0000)]
nginx-1.0.4-RELEASE

14 years agofix "stalled cache updating" alert,
Igor Sysoev [Wed, 1 Jun 2011 08:02:34 +0000 (08:02 +0000)]
fix "stalled cache updating" alert,
when non-cachable HEAD response did not not free an expired cache node

14 years agoconcatenate auto/os/features and auto/unix
Igor Sysoev [Tue, 31 May 2011 08:25:10 +0000 (08:25 +0000)]
concatenate auto/os/features and auto/unix

14 years agodelete unused auto/threads
Igor Sysoev [Tue, 31 May 2011 08:20:16 +0000 (08:20 +0000)]
delete unused auto/threads

14 years agoSupport POSIX semaphores on Linux.
Igor Sysoev [Tue, 31 May 2011 08:17:27 +0000 (08:17 +0000)]
Support POSIX semaphores on Linux.
This configure test must run before auto/make, because it adds library.
auto/unix was placed after auto/make just for historical reasons.

Patch by Denis F. Latypoff

14 years agorevert r3875 since now map uses case sensetive regexes by default
Igor Sysoev [Mon, 30 May 2011 14:24:17 +0000 (14:24 +0000)]
revert r3875 since now map uses case sensetive regexes by default

14 years agochange ngx_http_map_find(): use case sensitive regexes
Igor Sysoev [Mon, 30 May 2011 12:36:17 +0000 (12:36 +0000)]
change ngx_http_map_find(): use case sensitive regexes

14 years agofix building on FreeBSD 6 or earlier against system md5
Igor Sysoev [Fri, 27 May 2011 13:30:53 +0000 (13:30 +0000)]
fix building on FreeBSD 6 or earlier against system md5

14 years agomake built-in ngx_md5_update() interface consistent with other implemenations
Igor Sysoev [Fri, 27 May 2011 10:00:46 +0000 (10:00 +0000)]
make built-in ngx_md5_update() interface consistent with other implemenations

14 years agofix building --without-http_auth_basic_module,
Igor Sysoev [Thu, 26 May 2011 07:32:48 +0000 (07:32 +0000)]
fix building --without-http_auth_basic_module,
the bug has been introduced in r3923

14 years agobump version
Igor Sysoev [Thu, 26 May 2011 07:31:40 +0000 (07:31 +0000)]
bump version

14 years agorelease-1.0.3 tag
Igor Sysoev [Wed, 25 May 2011 14:55:11 +0000 (14:55 +0000)]
release-1.0.3 tag

14 years agonginx-1.0.3-RELEASE release-1.0.3
Igor Sysoev [Wed, 25 May 2011 14:50:50 +0000 (14:50 +0000)]
nginx-1.0.3-RELEASE

15 years ago"$apr1", "{PLAIN}", and "{SSHA}" password methods in auth basic module
Igor Sysoev [Mon, 16 May 2011 14:54:50 +0000 (14:54 +0000)]
"$apr1", "{PLAIN}", and "{SSHA}" password methods in auth basic module
patch by Maxim Dounin

15 years agofix testing IPv4 address mapped to IPv6, when only IPv6 access rules are defined
Igor Sysoev [Mon, 16 May 2011 14:01:23 +0000 (14:01 +0000)]
fix testing IPv4 address mapped to IPv6, when only IPv6 access rules are defined

15 years agosupport IPv4 mapped to IPv6 in geo module
Igor Sysoev [Mon, 16 May 2011 13:54:42 +0000 (13:54 +0000)]
support IPv4 mapped to IPv6 in geo module

15 years agosupport IPv4 mapped to IPv6 in geoip module
Igor Sysoev [Mon, 16 May 2011 13:50:58 +0000 (13:50 +0000)]
support IPv4 mapped to IPv6 in geoip module

15 years agofix debug logging
Igor Sysoev [Fri, 13 May 2011 10:06:56 +0000 (10:06 +0000)]
fix debug logging

15 years agofix a broken cached response if bypass/no_cache directive values are different,
Igor Sysoev [Fri, 13 May 2011 10:05:38 +0000 (10:05 +0000)]
fix a broken cached response if bypass/no_cache directive values are different,
the bug has been introduced in r3700

15 years agolog "Abort trap" or similar messages
Igor Sysoev [Wed, 11 May 2011 11:50:19 +0000 (11:50 +0000)]
log "Abort trap" or similar messages

15 years agogeoip_org
Igor Sysoev [Wed, 11 May 2011 09:34:21 +0000 (09:34 +0000)]
geoip_org
patch by Alexander Uskov

15 years agofix typo
Igor Sysoev [Wed, 11 May 2011 09:25:37 +0000 (09:25 +0000)]
fix typo

15 years agobump version
Igor Sysoev [Wed, 11 May 2011 09:19:48 +0000 (09:19 +0000)]
bump version

15 years agorelease-1.0.2 tag
Igor Sysoev [Tue, 10 May 2011 12:27:53 +0000 (12:27 +0000)]
release-1.0.2 tag

15 years agonginx-1.0.2-RELEASE release-1.0.2
Igor Sysoev [Tue, 10 May 2011 12:27:52 +0000 (12:27 +0000)]
nginx-1.0.2-RELEASE