]> git.kaiwu.me - nginx.git/log
nginx.git
12 years agoUpstream: ngx_post_event() instead of upgraded call (ticket #503).
Maxim Dounin [Tue, 18 Feb 2014 13:30:40 +0000 (17:30 +0400)]
Upstream: ngx_post_event() instead of upgraded call (ticket #503).

If a request is finalized in the first call to the
ngx_http_upstream_process_upgraded() function, e.g., because upstream
server closed the connection for some reason, in the second call
the u->peer.connection pointer will be null, resulting in segmentation
fault.

Fix is to avoid second direct call, and post event instead.  This ensures
that ngx_http_upstream_process_upgraded() won't be called again if
a request is finalized.

12 years agoVersion bump.
Maxim Dounin [Mon, 3 Mar 2014 13:22:28 +0000 (17:22 +0400)]
Version bump.

12 years agorelease-1.4.5 tag
Maxim Dounin [Tue, 11 Feb 2014 13:24:43 +0000 (17:24 +0400)]
release-1.4.5 tag

12 years agonginx-1.4.5-RELEASE release-1.4.5
Maxim Dounin [Tue, 11 Feb 2014 13:24:43 +0000 (17:24 +0400)]
nginx-1.4.5-RELEASE

12 years agoUpdated OpenSSL used for win32 builds.
Maxim Dounin [Wed, 22 Jan 2014 12:10:13 +0000 (16:10 +0400)]
Updated OpenSSL used for win32 builds.

12 years agoFixed TCP_DEFER_ACCEPT handling (ticket #353).
Maxim Dounin [Tue, 28 Jan 2014 11:40:46 +0000 (15:40 +0400)]
Fixed TCP_DEFER_ACCEPT handling (ticket #353).

Backed out 05a56ebb084a, as it turns out that kernel can return connections
without any delay if syncookies are used.  This basically means we can't
assume anything about connections returned with deferred accept set.

To solve original problem the 05a56ebb084a tried to solve, i.e. to don't
wait longer than needed if a connection was accepted after deferred accept
timeout, this patch changes a timeout set with setsockopt(TCP_DEFER_ACCEPT)
to 1 second, unconditionally.  This is believed to be enough for speed
improvements, and doesn't imply major changes to timeouts used.

Note that before 2.6.32 connections were dropped after a timeout.  Though
it is believed that 1s is still appropriate for kernels before 2.6.32,
as previously tcp_synack_retries controlled the actual timeout and 1s results
in more than 1 minute actual timeout by default.

12 years agoUpstream: reading from a client after connection upgrade.
Maxim Dounin [Wed, 22 Jan 2014 12:05:07 +0000 (16:05 +0400)]
Upstream: reading from a client after connection upgrade.

Read event on a client connection might have been disabled during
previous processing, and we at least need to handle events.  Calling
ngx_http_upstream_process_upgraded() is a simpliest way to do it.

Notably this change is needed for select, poll and /dev/poll event
methods.

Previous version of this patch was posted here:
http://mailman.nginx.org/pipermail/nginx/2014-January/041839.html

12 years agoSSL: fixed $ssl_session_id possible segfault after 97e3769637a7.
Maxim Dounin [Thu, 23 Jan 2014 14:32:26 +0000 (18:32 +0400)]
SSL: fixed $ssl_session_id possible segfault after 97e3769637a7.

Even during execution of a request it is possible that there will be
no session available, notably in case of renegotiation.  As a result
logging of $ssl_session_id in some cases caused NULL pointer dereference
after revision 97e3769637a7 (1.5.9).  The check added returns an empty
string if there is no session available.

12 years agoSSL: fixed $ssl_session_id variable.
Maxim Dounin [Wed, 22 Jan 2014 12:05:06 +0000 (16:05 +0400)]
SSL: fixed $ssl_session_id variable.

Previously, it used to contain full session serialized instead of just
a session id, making it almost impossible to use the variable in a safe
way.

Thanks to Ivan Ristić.

12 years agoSPDY: fixed possible segfault.
Valentin Bartenev [Wed, 22 Jan 2014 00:58:19 +0000 (04:58 +0400)]
SPDY: fixed possible segfault.

While processing a DATA frame, the link to related stream is stored in spdy
connection object as part of connection state.  But this stream can be closed
between receiving parts of the frame.

12 years agoYear 2014.
Valentin Bartenev [Tue, 14 Jan 2014 12:24:02 +0000 (16:24 +0400)]
Year 2014.

12 years agoFixed "zero size buf in output" alerts.
Maxim Dounin [Fri, 3 Jan 2014 23:32:22 +0000 (03:32 +0400)]
Fixed "zero size buf in output" alerts.

If a request had an empty request body (with Content-Length: 0), and there
were preread data available (e.g., due to a pipelined request in the buffer),
the "zero size buf in output" alert might be logged while proxying the
request to an upstream.

Similar alerts appeared with client_body_in_file_only if a request had an
empty request body.

13 years agoRequest body: fixed r->count increment on allocation failure.
Maxim Dounin [Sat, 11 May 2013 14:49:19 +0000 (18:49 +0400)]
Request body: fixed r->count increment on allocation failure.

12 years agoSSL: fixed c->read->ready handling in ngx_ssl_recv().
Maxim Dounin [Fri, 29 Nov 2013 13:16:06 +0000 (17:16 +0400)]
SSL: fixed c->read->ready handling in ngx_ssl_recv().

If c->read->ready was reset, but later some data were read from a socket
buffer due to a call to ngx_ssl_recv(), the c->read->ready flag should
be restored if not all data were read from OpenSSL buffers (as kernel
won't notify us about the data anymore).

More details are available here:
http://mailman.nginx.org/pipermail/nginx/2013-November/041178.html

12 years agoWin32: plugged memory leak.
Maxim Dounin [Thu, 31 Oct 2013 14:23:49 +0000 (18:23 +0400)]
Win32: plugged memory leak.

12 years agoVersion bump.
Maxim Dounin [Thu, 6 Feb 2014 16:49:12 +0000 (20:49 +0400)]
Version bump.

12 years agorelease-1.4.4 tag
Maxim Dounin [Tue, 19 Nov 2013 11:25:24 +0000 (15:25 +0400)]
release-1.4.4 tag

12 years agonginx-1.4.4-RELEASE release-1.4.4
Maxim Dounin [Tue, 19 Nov 2013 11:25:24 +0000 (15:25 +0400)]
nginx-1.4.4-RELEASE

12 years agoProper backtracking after space in a request line.
Ruslan Ermilov [Tue, 19 Nov 2013 02:57:58 +0000 (06:57 +0400)]
Proper backtracking after space in a request line.

12 years agoVersion bump.
Maxim Dounin [Tue, 19 Nov 2013 11:23:03 +0000 (15:23 +0400)]
Version bump.

12 years agorelease-1.4.3 tag
Maxim Dounin [Tue, 8 Oct 2013 12:07:14 +0000 (16:07 +0400)]
release-1.4.3 tag

12 years agonginx-1.4.3-RELEASE release-1.4.3
Maxim Dounin [Tue, 8 Oct 2013 12:07:13 +0000 (16:07 +0400)]
nginx-1.4.3-RELEASE

12 years agoMail: fixed segfault with ssl/starttls at mail{} level and no cert.
Maxim Dounin [Mon, 30 Sep 2013 18:10:13 +0000 (22:10 +0400)]
Mail: fixed segfault with ssl/starttls at mail{} level and no cert.

A configuration like "mail { starttls on; server {}}" triggered NULL
pointer dereference in ngx_mail_ssl_merge_conf() as conf->file was not set.

12 years agoMail: fixed overrun of allocated memory (ticket #411).
Maxim Dounin [Mon, 30 Sep 2013 18:10:08 +0000 (22:10 +0400)]
Mail: fixed overrun of allocated memory (ticket #411).

Reported by Markus Linnala.

12 years agoCore: fix misallocation at ngx_crypt_apr1 (ticket #412).
Markus Linnala [Fri, 20 Sep 2013 14:57:21 +0000 (17:57 +0300)]
Core: fix misallocation at ngx_crypt_apr1 (ticket #412).

Found by using auth_basic.t from mdounin nginx-tests under valgrind.

==10470== Invalid write of size 1
==10470==    at 0x43603D: ngx_crypt_to64 (ngx_crypt.c:168)
==10470==    by 0x43648E: ngx_crypt (ngx_crypt.c:153)
==10470==    by 0x489D8B: ngx_http_auth_basic_crypt_handler (ngx_http_auth_basic_module.c:297)
==10470==    by 0x48A24A: ngx_http_auth_basic_handler (ngx_http_auth_basic_module.c:240)
==10470==    by 0x44EAB9: ngx_http_core_access_phase (ngx_http_core_module.c:1121)
==10470==    by 0x44A822: ngx_http_core_run_phases (ngx_http_core_module.c:895)
==10470==    by 0x44A932: ngx_http_handler (ngx_http_core_module.c:878)
==10470==    by 0x455EEF: ngx_http_process_request (ngx_http_request.c:1852)
==10470==    by 0x456527: ngx_http_process_request_headers (ngx_http_request.c:1283)
==10470==    by 0x456A91: ngx_http_process_request_line (ngx_http_request.c:964)
==10470==    by 0x457097: ngx_http_wait_request_handler (ngx_http_request.c:486)
==10470==    by 0x4411EE: ngx_epoll_process_events (ngx_epoll_module.c:691)
==10470==  Address 0x5866fab is 0 bytes after a block of size 27 alloc'd
==10470==    at 0x4A074CD: malloc (vg_replace_malloc.c:236)
==10470==    by 0x43B251: ngx_alloc (ngx_alloc.c:22)
==10470==    by 0x421B0D: ngx_malloc (ngx_palloc.c:119)
==10470==    by 0x421B65: ngx_pnalloc (ngx_palloc.c:147)
==10470==    by 0x436368: ngx_crypt (ngx_crypt.c:140)
==10470==    by 0x489D8B: ngx_http_auth_basic_crypt_handler (ngx_http_auth_basic_module.c:297)
==10470==    by 0x48A24A: ngx_http_auth_basic_handler (ngx_http_auth_basic_module.c:240)
==10470==    by 0x44EAB9: ngx_http_core_access_phase (ngx_http_core_module.c:1121)
==10470==    by 0x44A822: ngx_http_core_run_phases (ngx_http_core_module.c:895)
==10470==    by 0x44A932: ngx_http_handler (ngx_http_core_module.c:878)
==10470==    by 0x455EEF: ngx_http_process_request (ngx_http_request.c:1852)
==10470==    by 0x456527: ngx_http_process_request_headers (ngx_http_request.c:1283)
==10470==

12 years agoWin32: $request_time fixed.
Maxim Dounin [Wed, 4 Sep 2013 16:48:30 +0000 (20:48 +0400)]
Win32: $request_time fixed.

On win32, time_t is 64 bits wide by default, and passing an ngx_msec_int_t
argument for %T format specifier doesn't work.  This doesn't manifest itself
on other platforms as time_t and ngx_msec_int_t are usually of the same size.

12 years agoFixed try_files with empty argument (ticket #390).
Maxim Dounin [Fri, 23 Aug 2013 18:18:39 +0000 (22:18 +0400)]
Fixed try_files with empty argument (ticket #390).

12 years agoAutoindex: improved ngx_de_info() error handling.
Sergey Kandaurov [Tue, 30 Jul 2013 07:43:21 +0000 (11:43 +0400)]
Autoindex: improved ngx_de_info() error handling.

This allows to build a directory listing whenever a loop exists in symbolic
link resolution of the path argument.

12 years agoAutoindex: return NGX_ERROR on error if headers were sent.
Sergey Kandaurov [Tue, 30 Jul 2013 07:43:21 +0000 (11:43 +0400)]
Autoindex: return NGX_ERROR on error if headers were sent.

This prevents ngx_http_finalize_request() from issuing
ngx_http_special_response_handler() on a freed context.

12 years agoSPDY: fixed segfault with "client_body_in_file_only" enabled.
Valentin Bartenev [Wed, 24 Jul 2013 18:24:25 +0000 (22:24 +0400)]
SPDY: fixed segfault with "client_body_in_file_only" enabled.

It is possible to send FLAG_FIN in additional empty data frame, even if it is
known from the content-length header that request body is empty.  And Firefox
actually behaves like this (see ticket #357).

To simplify code we sacrificed our microoptimization that did not work right
due to missing check in the ngx_http_spdy_state_data() function for rb->buf
set to NULL.

12 years agoVersion bump.
Maxim Dounin [Mon, 7 Oct 2013 16:30:03 +0000 (20:30 +0400)]
Version bump.

12 years agorelease-1.4.2 tag
Maxim Dounin [Wed, 17 Jul 2013 12:51:21 +0000 (16:51 +0400)]
release-1.4.2 tag

12 years agonginx-1.4.2-RELEASE release-1.4.2
Maxim Dounin [Wed, 17 Jul 2013 12:51:21 +0000 (16:51 +0400)]
nginx-1.4.2-RELEASE

12 years agoPerl: fixed r->header_in("Cookie") (ticket #351).
Maxim Dounin [Mon, 10 Jun 2013 10:35:00 +0000 (14:35 +0400)]
Perl: fixed r->header_in("Cookie") (ticket #351).

It was broken by X-Forwarded-For related changes in f7fe817c92a2 (1.3.14)
as hh->offset is no longer 0 for Cookie.

12 years agoUpdated zlib used for win32 builds.
Maxim Dounin [Tue, 4 Jun 2013 12:16:51 +0000 (16:16 +0400)]
Updated zlib used for win32 builds.

12 years agoWin32: accept_mutex now always disabled (ticket #362).
Maxim Dounin [Fri, 31 May 2013 10:59:26 +0000 (14:59 +0400)]
Win32: accept_mutex now always disabled (ticket #362).

Use of accept mutex on win32 may result in a deadlock if there are multiple
worker_processes configured and the mutex is grabbed by a process which
can't accept connections.

12 years agoUpstream: fixed fail_timeout and max_fails > 1.
Maxim Dounin [Tue, 21 May 2013 17:47:50 +0000 (21:47 +0400)]
Upstream: fixed fail_timeout and max_fails > 1.

Due to peer->checked always set since rev. c90801720a0c (1.3.0)
by round-robin and least_conn balancers (ip_hash not affected),
the code in ngx_http_upstream_free_round_robin_peer() function
incorrectly reset peer->fails too often.

Reported by Dmitry Popov,
http://mailman.nginx.org/pipermail/nginx-devel/2013-May/003720.html

12 years agoOCSP stapling: fix error logging of successful OCSP responses.
Piotr Sikora [Thu, 16 May 2013 22:37:13 +0000 (15:37 -0700)]
OCSP stapling: fix error logging of successful OCSP responses.

Due to a bad argument list, nginx worker would crash (SIGSEGV) while
trying to log the fact that it received OCSP response with "revoked"
or "unknown" certificate status.

While there, fix similar (but non-crashing) error a few lines above.

Signed-off-by: Piotr Sikora <piotr@cloudflare.com>
13 years agoRemoved vestiges of SVN.
Ruslan Ermilov [Thu, 25 Apr 2013 13:41:45 +0000 (17:41 +0400)]
Removed vestiges of SVN.

13 years agoProxy: $proxy_internal_body_length fixed.
Maxim Dounin [Sat, 11 May 2013 17:12:24 +0000 (21:12 +0400)]
Proxy: $proxy_internal_body_length fixed.

The $proxy_internal_body_length value might change during request lifetime,
notably if proxy_set_body used, and use of a cached value might result in
incorrect upstream requests.

Patch by Lanshun Zhou.

13 years agoFixed build with --with-mail_ssl_module.
Maxim Dounin [Sat, 11 May 2013 14:49:30 +0000 (18:49 +0400)]
Fixed build with --with-mail_ssl_module.

If nginx was compiled without --with-http_ssl_module, but with some
other module which uses OpenSSL (e.g. --with-mail_ssl_module), insufficient
preprocessor check resulted in build failure.  The problem was introduced
by e0a3714a36f8 (1.3.14).

Reported by Roman Arutyunyan.

13 years agoPerl: extra "return" removed.
Maxim Dounin [Sat, 11 May 2013 14:48:56 +0000 (18:48 +0400)]
Perl: extra "return" removed.

12 years agoVersion bump.
Maxim Dounin [Fri, 12 Jul 2013 10:24:07 +0000 (14:24 +0400)]
Version bump.

13 years agorelease-1.4.1 tag
Maxim Dounin [Mon, 6 May 2013 10:21:38 +0000 (14:21 +0400)]
release-1.4.1 tag

13 years agonginx-1.4.1-RELEASE release-1.4.1
Maxim Dounin [Mon, 6 May 2013 10:20:27 +0000 (14:20 +0400)]
nginx-1.4.1-RELEASE

13 years agoFixed chunk size parsing.
Maxim Dounin [Mon, 6 May 2013 10:03:24 +0000 (14:03 +0400)]
Fixed chunk size parsing.

13 years agoVersion bump.
Maxim Dounin [Mon, 6 May 2013 10:18:46 +0000 (14:18 +0400)]
Version bump.

13 years agostable-1.4 branch
Maxim Dounin [Sun, 5 May 2013 22:12:30 +0000 (02:12 +0400)]
stable-1.4 branch

13 years agorelease-1.4.0 tag
Maxim Dounin [Wed, 24 Apr 2013 13:59:45 +0000 (13:59 +0000)]
release-1.4.0 tag

13 years agonginx-1.4.0-RELEASE release-1.4.0
Maxim Dounin [Wed, 24 Apr 2013 13:59:34 +0000 (13:59 +0000)]
nginx-1.4.0-RELEASE

13 years agoVersion bump.
Maxim Dounin [Wed, 24 Apr 2013 13:03:43 +0000 (13:03 +0000)]
Version bump.

13 years agoSPDY: set NGX_TCP_NODELAY_DISABLED for fake connections.
Valentin Bartenev [Tue, 23 Apr 2013 10:15:49 +0000 (10:15 +0000)]
SPDY: set NGX_TCP_NODELAY_DISABLED for fake connections.

This is to avoid setting the TCP_NODELAY flag on SPDY socket in
ngx_http_upstream_send_response().  The latter works per request,
but in SPDY case it might affect other streams in connection.

13 years agoPerl: request body handling fixed.
Maxim Dounin [Tue, 23 Apr 2013 10:04:12 +0000 (10:04 +0000)]
Perl: request body handling fixed.

As of 1.3.9, chunked request body may be available with
r->headers_in.content_length_n <= 0.  Additionally, request body
may be in multiple buffers even if r->request_body_in_single_buf
was requested.

13 years agoConfigure: fixed perl Makefile generation (ticket #334).
Maxim Dounin [Fri, 19 Apr 2013 12:19:57 +0000 (12:19 +0000)]
Configure: fixed perl Makefile generation (ticket #334).

Dependancy tracking introduced in r5169 were not handled absolute path
names properly.  Absolute names might appear in CORE_DEPS if --with-openssl
or --with-pcre configure arguments are used to build OpenSSL/PCRE
libraries.

Additionally, revert part of r5169 to set NGX_INCS from Makefile
variables.  Makefile variables have $ngx_include_opt in them, which
might result in wrong include paths being used.  As a side effect,
this also restores build with --with-http_perl_module and --without-http
at the same time.

13 years agoConfigure: uniformly refer to libs when searching for md5 and sha1.
Ruslan Ermilov [Thu, 18 Apr 2013 14:26:08 +0000 (14:26 +0000)]
Configure: uniformly refer to libs when searching for md5 and sha1.

13 years agoVersion bump.
Ruslan Ermilov [Thu, 18 Apr 2013 14:16:44 +0000 (14:16 +0000)]
Version bump.

13 years agorelease-1.3.16 tag
Maxim Dounin [Tue, 16 Apr 2013 14:05:22 +0000 (14:05 +0000)]
release-1.3.16 tag

13 years agonginx-1.3.16-RELEASE release-1.3.16
Maxim Dounin [Tue, 16 Apr 2013 14:05:11 +0000 (14:05 +0000)]
nginx-1.3.16-RELEASE

13 years agoEvents: backout eventport changes (r5172) for now.
Maxim Dounin [Tue, 16 Apr 2013 12:58:03 +0000 (12:58 +0000)]
Events: backout eventport changes (r5172) for now.

Evenport method needs more work.  Changes in r5172, while being correct,
introduce various new regressions with current code.

13 years agoRequest body: only read body in main request (ticket #330).
Maxim Dounin [Tue, 16 Apr 2013 10:14:59 +0000 (10:14 +0000)]
Request body: only read body in main request (ticket #330).

Before 1.3.9 an attempt to read body in a subrequest only caused problems
if body wasn't already read or discarded in a main request.  Starting with
1.3.9 it might also cause problems if body was discarded by a main request
before subrequest start.

Fix is to just ignore attempts to read request body in a subrequest, which
looks like right thing to do anyway.

13 years agoUpstream: warn if multiple non-stackable balancers are installed.
Ruslan Ermilov [Fri, 12 Apr 2013 19:12:13 +0000 (19:12 +0000)]
Upstream: warn if multiple non-stackable balancers are installed.

13 years agoEvents: fixed typos in two previous commits.
Valentin Bartenev [Fri, 12 Apr 2013 17:31:08 +0000 (17:31 +0000)]
Events: fixed typos in two previous commits.

13 years agoEvents: handle only active events in eventport.
Valentin Bartenev [Fri, 12 Apr 2013 15:04:23 +0000 (15:04 +0000)]
Events: handle only active events in eventport.

We generate both read and write events if an error event was returned by
port_getn() without POLLIN/POLLOUT, but we should not try to handle inactive
events, they may even have no handler.

13 years agoEvents: protection from stale events in eventport and devpoll.
Valentin Bartenev [Fri, 12 Apr 2013 15:02:33 +0000 (15:02 +0000)]
Events: protection from stale events in eventport and devpoll.

Stale write event may happen if read and write events was reported both,
and processing of the read event closed descriptor.

In practice this might result in "sendfilev() failed (134: ..." or
"writev() failed (134: ..." errors when switching to next upstream server.

See report here:
http://mailman.nginx.org/pipermail/nginx/2013-April/038421.html

13 years agoUpstream: fixed $upstream_response_length without buffering.
Sergey Kandaurov [Thu, 11 Apr 2013 13:49:13 +0000 (13:49 +0000)]
Upstream: fixed $upstream_response_length without buffering.

Reported by Piotr Sikora.

13 years agoConfigure: fixed nginx.so rebuild (broken by r5145).
Maxim Dounin [Wed, 10 Apr 2013 17:07:44 +0000 (17:07 +0000)]
Configure: fixed nginx.so rebuild (broken by r5145).

To avoid further breaks it's now done properly, all the dependencies
are now passed to Makefile.PL.  While here, fixed include list passed to
Makefile.PL to use Makefile variables rather than a list expanded during
configure.

13 years agoUpstream: removed surplus ngx_resolve_name_done() call.
Valentin Bartenev [Thu, 4 Apr 2013 14:19:06 +0000 (14:19 +0000)]
Upstream: removed surplus ngx_resolve_name_done() call.

It will be called in ngx_http_upstream_finalize_request().

13 years agoLimit req: rate should be non-zero.
Valentin Bartenev [Wed, 3 Apr 2013 14:13:35 +0000 (14:13 +0000)]
Limit req: rate should be non-zero.

Specifying zero rate caused division by zero when calculating delays.

13 years agoPass PCRE_CASELESS to pcre_compile() for caseless matching.
Ruslan Ermilov [Fri, 29 Mar 2013 08:47:37 +0000 (08:47 +0000)]
Pass PCRE_CASELESS to pcre_compile() for caseless matching.

Previously, we sometimes passed constant value 1 that happens to
match PCRE_CASELESS and thus was harmless.

13 years agoConfigure: unified nginx version computation constructs.
Ruslan Ermilov [Thu, 28 Mar 2013 08:47:25 +0000 (08:47 +0000)]
Configure: unified nginx version computation constructs.

13 years agoSimplified nginx version maintenance.
Ruslan Ermilov [Thu, 28 Mar 2013 08:47:06 +0000 (08:47 +0000)]
Simplified nginx version maintenance.

It's no longer necessary to update src/http/modules/perl/nginx.pm
when version is bumped, as it's now derived from src/core/nginx.h.

13 years agoConfigure: fixed perl module make rules.
Ruslan Ermilov [Thu, 28 Mar 2013 08:46:42 +0000 (08:46 +0000)]
Configure: fixed perl module make rules.

Filename extension used for dynamically loaded perl modules isn't
necessarily ".so" (e.g., it's ".bundle" on Mac OS X).

This fixes "make" after "make" unnecessarily rebuilding perl module.

13 years agoConfigure: improved make dependencies for perl module.
Ruslan Ermilov [Thu, 28 Mar 2013 08:46:12 +0000 (08:46 +0000)]
Configure: improved make dependencies for perl module.

Added missing dependencies for perl module's Makefile.

Simplified dependencies for perl module nginx.so: it depends
on Makefile that in turn depends on other perl bits.

13 years agoConfigure: improved layout of the generated makefile.
Ruslan Ermilov [Thu, 28 Mar 2013 08:45:45 +0000 (08:45 +0000)]
Configure: improved layout of the generated makefile.

No functional changes.

13 years agoUpstream: fixed tcp_nodelay with connection upgrade (ticket #325).
Maxim Dounin [Wed, 27 Mar 2013 15:18:34 +0000 (15:18 +0000)]
Upstream: fixed tcp_nodelay with connection upgrade (ticket #325).

13 years agoEvent connect: don't penalize AF_INET6 connections.
Maxim Dounin [Wed, 27 Mar 2013 15:16:45 +0000 (15:16 +0000)]
Event connect: don't penalize AF_INET6 connections.

Problems with setsockopt(TCP_NODELAY) and setsockopt(TCP_NOPUSH), as well
as sendfile() syscall on Solaris, are specific to UNIX-domain sockets.
Other address families, i.e. AF_INET and AF_INET6, are fine.

13 years agoVersion bump.
Maxim Dounin [Wed, 27 Mar 2013 15:15:34 +0000 (15:15 +0000)]
Version bump.

13 years agorelease-1.3.15 tag
Maxim Dounin [Tue, 26 Mar 2013 13:03:14 +0000 (13:03 +0000)]
release-1.3.15 tag

13 years agonginx-1.3.15-RELEASE release-1.3.15
Maxim Dounin [Tue, 26 Mar 2013 13:03:02 +0000 (13:03 +0000)]
nginx-1.3.15-RELEASE

13 years agoUse NGX_FILE_ERROR for handling file operations errors.
Valentin Bartenev [Mon, 25 Mar 2013 15:49:11 +0000 (15:49 +0000)]
Use NGX_FILE_ERROR for handling file operations errors.

On Win32 platforms 0 is used to indicate errors in file operations, so
comparing against -1 is not portable.

This was not much of an issue in patched code, since only ngx_fd_info() test
is actually reachable on Win32 and in worst case it might result in bogus
error log entry.

Patch by Piotr Sikora.

13 years agoUpstream: removed rudiments of upstream connection caching.
Ruslan Ermilov [Mon, 25 Mar 2013 14:51:44 +0000 (14:51 +0000)]
Upstream: removed rudiments of upstream connection caching.

This functionality is now provided by ngx_http_upstream_keepalive_module.

13 years agoUpstream: removed sorting of upstream servers.
Ruslan Ermilov [Mon, 25 Mar 2013 13:41:30 +0000 (13:41 +0000)]
Upstream: removed sorting of upstream servers.

Sorting of upstream servers by their weights is not required by
current balancing algorithms.

This will likely change mapping to backends served by ip_hash
weighted upstreams.

13 years agoMail: IPv6 backends (ticket #323).
Ruslan Ermilov [Mon, 25 Mar 2013 13:38:59 +0000 (13:38 +0000)]
Mail: IPv6 backends (ticket #323).

13 years agoUpstream: removed double-free workarounds in peer.free() methods.
Ruslan Ermilov [Mon, 25 Mar 2013 13:16:55 +0000 (13:16 +0000)]
Upstream: removed double-free workarounds in peer.free() methods.

13 years agoUpstream: only call peer.free() if peer.get() selected a peer.
Ruslan Ermilov [Mon, 25 Mar 2013 13:14:49 +0000 (13:14 +0000)]
Upstream: only call peer.free() if peer.get() selected a peer.

13 years agoMisc: support for Mercurial repositories.
Maxim Dounin [Fri, 22 Mar 2013 15:47:18 +0000 (15:47 +0000)]
Misc: support for Mercurial repositories.

13 years agoMisc: removed unused "snapshot" target.
Maxim Dounin [Fri, 22 Mar 2013 15:14:43 +0000 (15:14 +0000)]
Misc: removed unused "snapshot" target.

13 years agoMisc: switch to single export operation in "zip" target.
Maxim Dounin [Fri, 22 Mar 2013 15:14:07 +0000 (15:14 +0000)]
Misc: switch to single export operation in "zip" target.

While exporting parts of the tree might be better in some cases, it
is awfully slow overseas, and also requires unlocking ssh key multiple
times.  Exporting the whole repo and removing directories not needed for
zip is faster here.

It is also a required step before we can switch to Mercurial.

13 years agoSplit clients: check length when parsing configuration.
Ruslan Ermilov [Thu, 21 Mar 2013 16:06:53 +0000 (16:06 +0000)]
Split clients: check length when parsing configuration.

13 years agoRemoved unused ngx_http_clear_variable() macro.
Ruslan Ermilov [Thu, 21 Mar 2013 16:06:13 +0000 (16:06 +0000)]
Removed unused ngx_http_clear_variable() macro.

13 years agoFixed language in a comment preceding ngx_http_index_handler().
Ruslan Ermilov [Thu, 21 Mar 2013 16:05:35 +0000 (16:05 +0000)]
Fixed language in a comment preceding ngx_http_index_handler().

13 years agoMoved ngx_array_t definition from ngx_core.h to ngx_array.h.
Ruslan Ermilov [Thu, 21 Mar 2013 16:04:09 +0000 (16:04 +0000)]
Moved ngx_array_t definition from ngx_core.h to ngx_array.h.

13 years agoUse NGX_DEFAULT_POOL_SIZE macro where appropriate.
Ruslan Ermilov [Thu, 21 Mar 2013 16:03:24 +0000 (16:03 +0000)]
Use NGX_DEFAULT_POOL_SIZE macro where appropriate.

13 years agoSimplified ngx_array_create().
Ruslan Ermilov [Thu, 21 Mar 2013 15:52:52 +0000 (15:52 +0000)]
Simplified ngx_array_create().

13 years agoCore: fixed resource leak if binary upgrade fails due to no memory.
Ruslan Ermilov [Wed, 20 Mar 2013 18:07:25 +0000 (18:07 +0000)]
Core: fixed resource leak if binary upgrade fails due to no memory.

Found by Coverity (CID 992320).

13 years agoPreliminary experimental support for SPDY draft 2.
Valentin Bartenev [Wed, 20 Mar 2013 10:36:57 +0000 (10:36 +0000)]
Preliminary experimental support for SPDY draft 2.

13 years agoWin32: disabled MSVC warning about '\0' not fitting into array.
Valentin Bartenev [Wed, 20 Mar 2013 10:18:26 +0000 (10:18 +0000)]
Win32: disabled MSVC warning about '\0' not fitting into array.

We believe that this warning produces more inconvience than real benefit.
Here is an example to trigger:

  u_char a[4] = "test";

13 years agoURI processing code moved to a separate function.
Valentin Bartenev [Wed, 20 Mar 2013 09:36:27 +0000 (09:36 +0000)]
URI processing code moved to a separate function.

This allows to reuse it in the upcoming SPDY module.

13 years agoImage filter: the "image_filter_interlace" directive.
Ruslan Ermilov [Tue, 19 Mar 2013 08:13:48 +0000 (08:13 +0000)]
Image filter: the "image_filter_interlace" directive.

Patch by Ian Babrou, with minor changes.

13 years agoThe limit_req_status and limit_conn_status directives.
Maxim Dounin [Mon, 18 Mar 2013 14:50:29 +0000 (14:50 +0000)]
The limit_req_status and limit_conn_status directives.

Patch by Nick Marden, with minor changes.