summaryrefslogtreecommitdiffhomepage
AgeCommit message (Collapse)AuthorFilesLines
2013-02-05nginx-1.3.12-RELEASErelease-1.3.12Maxim Dounin1-0/+100
2013-02-05Updated OpenSSL used for win32 builds.Maxim Dounin1-1/+1
2013-02-04GeoIP: removed pseudo-support of "proxy" and "netspeed" databases.Ruslan Ermilov1-2/+0
2013-02-01FastCGI: proper handling of split fastcgi end request.Maxim Dounin1-7/+37
If fastcgi end request record was split between several network packets, with fastcgi_keep_conn it was possible that connection was saved in incorrect state (e.g. with padding bytes not yet read).
2013-02-01FastCGI: unconditional state transitions.Maxim Dounin1-49/+8
Checks for f->padding before state transitions make code hard to follow, remove them and make sure we always do another loop iteration after f->state is set to ngx_http_fastcgi_st_padding.
2013-02-01FastCGI: fixed wrong connection close with fastcgi_keep_conn.Maxim Dounin1-4/+0
With fastcgi_keep_conn it was possible that connection was closed after FCGI_STDERR record with zero padding and without any further data read yet. This happended as f->state was set to ngx_http_fastcgi_st_padding and then "break" happened, resulting in p->length being set to f->padding, i.e. 0 (which in turn resulted in connection close). Fix is to make sure we continue the loop after f->state is set.
2013-02-01Request body: fixed client_body_in_file_only.Maxim Dounin1-1/+17
After introduction of chunked request body reading support in 1.3.9 (r4931), the rb->bufs wasn't set if request body was fully preread while calling the ngx_http_read_client_request_body() function. Reported by Yichun Zhang (agentzh).
2013-02-01SSL: fixed ngx_ssl_handshake() with level-triggered event methods.Maxim Dounin1-0/+8
Missing calls to ngx_handle_write_event() and ngx_handle_read_event() resulted in a CPU hog during SSL handshake if an level-triggered event method (e.g. select) was used.
2013-01-28SSL: take into account data in the buffer while limiting output.Valentin Bartenev1-1/+1
In some rare cases this can result in a more smooth sending rate.
2013-01-28SSL: avoid calling SSL_write() with zero data size.Valentin Bartenev1-0/+6
According to documentation, calling SSL_write() with num=0 bytes to be sent results in undefined behavior. We don't currently call ngx_ssl_send_chain() with empty chain and buffer. This check handles the case of a chain with total data size that is a multiple of NGX_SSL_BUFSIZE, and with the special buffer at the end. In practice such cases resulted in premature connection close and critical error "SSL_write() failed (SSL:)" in the error log.
2013-01-28SSL: calculation of buffer size moved closer to its usage.Valentin Bartenev1-2/+2
No functional changes.
2013-01-28SSL: preservation of flush flag for buffered data.Valentin Bartenev1-5/+5
Previously, if SSL buffer was not sent we lost information that the data must be flushed.
2013-01-28SSL: resetting of flush flag after the data was written.Valentin Bartenev1-0/+2
There is no need to flush next chunk of data if it does not contain a buffer with the flush or last_buf flags set.
2013-01-28SSL: removed conditions that always hold true.Valentin Bartenev1-5/+3
2013-01-28Secure_link: fixed configuration inheritance.Ruslan Ermilov1-2/+15
The "secure_link_secret" directive was always inherited from the outer configuration level even when "secure_link" and "secure_link_md5" were specified on the inner level.
2013-01-25Events: fixed null pointer dereference with resolver and poll.Ruslan Ermilov1-2/+2
A POLLERR signalled by poll() without POLLIN/POLLOUT, as seen on Linux, would generate both read and write events, but there's no write event handler for resolver events. A fix is to only call event handler of an active event.
2013-01-24GeoIP: IPv6 support.Ruslan Ermilov2-13/+157
When using IPv6 databases, IPv4 addresses are looked up as IPv4-mapped IPv6 addresses. Mostly based on a patch by Gregor Kališnik (ticket #250).
2013-01-24Configure: fixed GeoIP library detection.Ruslan Ermilov1-1/+4
2013-01-24Configure: fixed style of include directories.Ruslan Ermilov2-2/+2
2013-01-22Proxy: fixed proxy_method to always add space.Maxim Dounin1-4/+5
Before the patch if proxy_method was specified at http{} level the code to add trailing space wasn't executed, resulting in incorrect requests to upstream.
2013-01-21Removed redundant variable assignment.Sergey Budnevitch1-3/+0
2013-01-21Variables $pipe, $request_length, $time_iso8601, and $time_local.Ruslan Ermilov1-0/+102
Log module counterparts are preserved for efficiency. Based on patch by Kiril Kalchev.
2013-01-17Version bump.Ruslan Ermilov2-3/+3
2013-01-16Fixed and improved the "*_bind" directives of proxying modules.Ruslan Ermilov8-12/+131
The "proxy_bind", "fastcgi_bind", "uwsgi_bind", "scgi_bind" and "memcached_bind" directives are now inherited; inherited value can be reset by the "off" parameter. Duplicate directives are now detected. Parameter value can now contain variables.
2013-01-10release-1.3.11 tagMaxim Dounin1-0/+1
2013-01-10nginx-1.3.11-RELEASErelease-1.3.11Maxim Dounin1-0/+53
2013-01-10Fixed "proxy_pass" with IP address and no port (ticket #276).Ruslan Ermilov4-15/+14
Upstreams created by "proxy_pass" with IP address and no port were broken in 1.3.10, by not initializing port in u->sockaddr. API change: ngx_parse_url() was modified to always initialize port (in u->sockaddr and in u->port), even for the u->no_resolve case; ngx_http_upstream() and ngx_http_upstream_add() were adopted.
2013-01-10Updated PCRE used for win32 builds.Maxim Dounin1-1/+1
2013-01-09SSL: speedup loading of configs with many ssl servers.Maxim Dounin1-2/+2
The patch saves one EC_KEY_generate_key() call per server{} block by informing OpenSSL about SSL_OP_SINGLE_ECDH_USE we are going to use before the SSL_CTX_set_tmp_ecdh() call. For a configuration file with 10k simple server{} blocks with SSL enabled this change reduces startup time from 18s to 5s on a slow test box here.
2013-01-08Events: added check for duplicate "events" directive.Valentin Bartenev1-0/+4
2013-01-08The data pointer in ngx_open_file_t objects must be initialized.Valentin Bartenev1-0/+1
Uninitialized pointer may result in arbitrary segfaults if access_log is used without buffer and without variables in file path. Patch by Tatsuhiko Kubo (ticket #268).
2012-12-31Year 2013.Ruslan Ermilov2-4/+4
2012-12-27Geo: improved code readability.Ruslan Ermilov1-54/+61
2012-12-26Upstream keepalive: detect duplicate "keepalive" directive.Ruslan Ermilov1-0/+4
A failure to detect duplicate "keepalive" directive resulted in stack exhaustion.
2012-12-26Version bump.Ruslan Ermilov2-3/+3
2012-12-26Geo: made "default" affect both IPv4 and IPv6 when using prefixes.Ruslan Ermilov1-48/+77
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.
2012-12-25release-1.3.10 tagMaxim Dounin1-0/+1
2012-12-25nginx-1.3.10-RELEASErelease-1.3.10Maxim Dounin1-0/+177
2012-12-25Geo: properly initialize ngx_cidr_t when dealing with "default".Ruslan Ermilov1-1/+1
2012-12-25Geo: IPv6 support.Ruslan Ermilov3-79/+442
The "ranges" mode is still limited to IPv4 only.
2012-12-25Upstream: fixed state resetting when switching to backup servers.Valentin Bartenev2-2/+6
Based on patch by Thomas Chen (ticket #257).
2012-12-24Fixed HEAD requests handling when proxying is used (closes #261).Valentin Bartenev2-1/+2
2012-12-24Trailing whitespace fix.Ruslan Ermilov1-2/+2
2012-12-23Access log: the "gzip" parameter of the "access_log" directive.Valentin Bartenev1-5/+213
Note: this requires zlib version 1.2.0.4 or above to work.
2012-12-23Configure: added the NGX_ZLIB define.Valentin Bartenev1-1/+4
This was introduced for conditional compilation of the code that requires the zlib library.
2012-12-23Access log: the "flush" parameter of the "access_log" directive.Valentin Bartenev1-23/+97
2012-12-23Reopening log files code moved to a separate function.Valentin Bartenev4-67/+77
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..
2012-12-23Access log: fixed redundant buffer reallocation.Valentin Bartenev1-5/+9
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.
2012-12-22Properly initialize "struct in6_addr" with zeroes.Ruslan Ermilov1-1/+1
2012-12-21Core: crypt_r() error handling fixed.Maxim Dounin1-14/+13
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.