aboutsummaryrefslogtreecommitdiff
path: root/src
Commit message (Collapse)AuthorAge
...
* Fixed post_action to not trigger "header already sent" alert.Maxim Dounin2014-11-28
| | | | | | | | The alert was introduced in 03ff14058272 (1.5.4), and was triggered on each post_action invocation. There is no real need to call header filters in case of post_action, so return NGX_OK from ngx_http_send_header() if r->post_action is set.
* Typo.Maxim Dounin2014-11-28
|
* SPDY: push pending data while closing a stream as with keepalive.Valentin Bartenev2014-11-21
| | | | | | | | | This helps to avoid delays in sending the last chunk of data because of bad interaction between Nagle's algorithm on nginx side and delayed ACK on the client side. Delays could also be caused by TCP_CORK/TCP_NOPUSH if SPDY was working without SSL and sendfile() was used.
* Syslog: allowed underscore symbol in tag (ticket #667).Vladimir Homutov2014-11-20
|
* Resolver: fixed debug event logging.Ruslan Ermilov2014-11-20
| | | | | | | | | In 954867a2f0a6, we switched to using resolver node as the timer event data. This broke debug event logging. Replaced now unused ngx_resolver_ctx_t.ident with ngx_resolver_node_t.ident so that ngx_event_ident() extracts something sensible when accessing ngx_resolver_node_t as ngx_connection_t.
* Resolver: fixed use-after-free memory access.Ruslan Ermilov2014-11-20
| | | | | | In 954867a2f0a6, we switched to using resolver node as the timer event data, so make sure we do not free resolver node memory until the corresponding timer is deleted.
* Style.Valentin Bartenev2014-11-19
|
* Fixed type of sendfile() return value on Linux.Valentin Bartenev2014-11-19
| | | | | There was no real problem since the amount of bytes can be sent is limited by NGX_SENDFILE_MAXSIZE to less than 2G. But that can be changed in the future
* Moved writev() handling code to a separate function.Valentin Bartenev2014-08-13
| | | | | This reduces code duplication and unifies debug logging of the writev() syscall among various send chain functions.
* Merged conditions in the ngx_*_sendfile_chain() functions.Valentin Bartenev2014-08-13
| | | | No functional changes.
* Moved the code for coalescing file buffers to a separate function.Valentin Bartenev2014-08-13
|
* Refactored ngx_solaris_sendfilev_chain().Valentin Bartenev2014-11-19
| | | | | | | Though ngx_solaris_sendfilev_chain() shouldn't suffer from the problem mentioned in d1bde5c3c5d2 since currently IOV_MAX on Solaris is 16, but this follows the change from 3d5717550371 in order to make the code look similar to other systems and potentially eliminates the problem in the future.
* Introduced the ngx_output_chain_to_iovec() function.Valentin Bartenev2014-10-07
| | | | | It deduplicates code of the send chain functions and uses only preallocated memory, which completely solves the problem mentioned in d1bde5c3c5d2.
* Renamed ngx_handle_sent_chain() to ngx_chain_update_sent().Valentin Bartenev2014-11-19
| | | | No functional changes.
* Cache: add support for Cache-Control's s-maxage response directive.Piotr Sikora2014-11-18
| | | | Signed-off-by: Piotr Sikora <piotr@cloudflare.com>
* Proxy: renamed and rearranged fields in proxy configuration.Roman Arutyunyan2014-11-19
| | | | No functional changes.
* Upstream: different header lists for cached and uncached requests.Roman Arutyunyan2014-11-19
| | | | | | | | | | | | The upstream modules remove and alter a number of client headers before sending the request to upstream. This set of headers is smaller or even empty when cache is disabled. It's still possible that a request in a cache-enabled location is uncached, for example, if cache entry counter is below min_uses. In this case it's better to alter a smaller set of headers and pass more client headers to backend unchanged. One of the benefits is enabling server-side byte ranges in such requests.
* Upstream: moved header lists to separate structures.Roman Arutyunyan2014-11-19
| | | | No functional changes.
* Upstream: moved header initializations to separate functions.Roman Arutyunyan2014-11-19
| | | | No functional changes.
* Scgi: do not push redundant NULL element into conf->params.Roman Arutyunyan2014-11-19
|
* Cache: proxy_cache_lock_age and friends.Roman Arutyunyan2014-11-18
| | | | | | Once this age is reached, the cache lock is discarded and another request can acquire the lock. Requests which failed to acquire the lock are not allowed to cache the response.
* SPDY: fixed check for too long header name or value.Valentin Bartenev2014-11-07
| | | | | | | For further progress a new buffer must be at least two bytes larger than the remaining unparsed data. One more byte is needed for null-termination and another one for further progress. Otherwise inflate() fails with Z_BUF_ERROR.
* SPDY: improved debug logging of inflate() calls.Valentin Bartenev2014-11-07
|
* SSL: logging level of "inappropriate fallback" (ticket #662).Maxim Dounin2014-11-17
| | | | Patch by Erik Dubbelboer.
* Upstream: support named location for X-Accel-Redirect.Toshikuni Fukaya2014-11-04
|
* Upstream: add "proxy_ssl_certificate" and friends.Piotr Sikora2014-10-30
| | | | Signed-off-by: Piotr Sikora <piotr@cloudflare.com>
* SPDY: fixed "too long header line" logging.Maxim Dounin2014-11-07
| | | | | This fixes possible one byte buffer overrun and makes sure ellipsis are always added, see 21043ce2a005.
* Cache: removed dead store in ngx_http_file_cache_vary_header().Maxim Dounin2014-11-05
| | | | Found by Clang Static Analyzer.
* Access log: cancel the flush timer on graceful shutdown.Valentin Bartenev2014-08-25
| | | | | Previously, it could prevent a worker process from exiting for up to the configured flush timeout.
* Events: introduced cancelable timers.Valentin Bartenev2014-08-13
|
* Events: simplified cycle in ngx_event_expire_timers().Valentin Bartenev2014-08-25
|
* Events: removed broken thread support from event timers.Valentin Bartenev2014-08-25
| | | | | It's mostly dead code. And the idea of thread support for this task has been deprecated.
* SSL: simplified ssl_password_file error handling.Sergey Kandaurov2014-10-24
| | | | | | | | | | | | | Instead of collecting a number of the possible SSL_CTX_use_PrivateKey_file() error codes that becomes more and more difficult with the rising variety of OpenSSL versions and its derivatives, just continue with the next password. Multiple passwords in a single ssl_password_file feature was broken after recent OpenSSL changes (commit 4aac102f75b517bdb56b1bcfd0a856052d559f6e). Affected OpenSSL releases: 0.9.8zc, 1.0.0o, 1.0.1j and 1.0.2-beta3. Reported by Piotr Sikora.
* SPDY: stop emitting multiple empty header values.Piotr Sikora2014-10-27
| | | | | | | | | | | Previously, nginx would emit empty values in a header with multiple, NULL-separated values. This is forbidden by the SPDY specification, which requires headers to have either a single (possibly empty) value or multiple, NULL-separated non-empty values. Signed-off-by: Piotr Sikora <piotr@cloudflare.com>
* Version bump.Valentin Bartenev2014-10-28
|
* Win32: made build-able with MinGW-w64 gcc.Kouhei Sutou2014-10-15
|
* Upstream: limited next_upstream time and tries when resolving DNS.Gu Feng2014-10-27
| | | | | | When got multiple upstream IP addresses using DNS resolving, the number of upstreams tries and the maxinum time spent for these tries were not affected. This patch fixed it.
* Write filter: stored delay in a variable, no functional changes.Roman Arutyunyan2014-10-28
| | | | The code is now similar to ngx_event_pipe_read_upstream().
* Upstream: proxy_limit_rate and friends.Roman Arutyunyan2014-10-28
| | | | | | The directives limit the upstream read rate. For example, "proxy_limit_rate 42" limits proxy upstream read rate to 42 bytes per second.
* Core: added limit to recv_chain().Roman Arutyunyan2014-10-28
|
* Cache: normalization of some Vary headers.Maxim Dounin2014-10-27
| | | | | | Spaces in Accept-Charset, Accept-Encoding, and Accept-Language headers are now ignored. As per syntax of these headers spaces can only appear in places where they are optional.
* Cache: multiple variants of a resource now can be stored.Maxim Dounin2014-10-27
| | | | | | | | | If a variant stored can't be used to respond to a request, the variant hash is used as a secondary key. Additionally, if we previously switched to a secondary key, while storing a response to cache we check if the variant hash still apply. If not, we switch back to the original key, to handle cases when Vary changes.
* Cache: c->reading flag introduced.Maxim Dounin2014-10-27
| | | | | It replaces c->buf in checks in ngx_http_file_cache_open(), making it possible to reopen the file without clearing c->buf. No functional changes.
* Cache: hash of Vary headers now stored in cache.Maxim Dounin2014-10-27
| | | | | | | | To cache responses with Vary, we now calculate hash of headers listed in Vary, and return the response from cache only if new request headers match. As of now, only one variant of the same resource can be stored in cache.
* Cache: disable caching of responses with Vary (ticket #118).Maxim Dounin2014-10-27
| | | | | The "proxy_ignore_header" directive now undersands the "Vary" parameter to ignore the header as needed.
* Gzip, gunzip: flush busy buffers if any.Maxim Dounin2014-10-15
| | | | | | | | | | | | Previous code resulted in transfer stalls when client happened to read all the data in buffers at once, while all gzip buffers were exhausted (but ctx->nomem wasn't set). Make sure to call next body filter at least once per call if there are busy buffers. Additionally, handling of calls with NULL chain was changed to follow the same logic, i.e., next body filter is only called with NULL chain if there are busy buffers. This is expected to fix "output chain is empty" alerts as reported by some users after c52a761a2029 (1.5.7).
* Style.Maxim Dounin2014-10-14
|
* Upstream: proxy_force_ranges and friends.Roman Arutyunyan2014-10-14
| | | | | The directives enable byte ranges for both cached and uncached responses regardless of backend headers.
* Win32: suppressed warnings by "-Werror=sign-compare".Kouhei Sutou2014-10-11
|
* Win32: fixed wrong type cast.Kouhei Sutou2014-10-11
| | | | | | | | | | | | | | | | | | GetQueuedCompletionStatus() document on MSDN says the following signature: http://msdn.microsoft.com/en-us/library/windows/desktop/aa364986.aspx BOOL WINAPI GetQueuedCompletionStatus( _In_ HANDLE CompletionPort, _Out_ LPDWORD lpNumberOfBytes, _Out_ PULONG_PTR lpCompletionKey, _Out_ LPOVERLAPPED *lpOverlapped, _In_ DWORD dwMilliseconds ); In the latest specification, the type of the third argument (lpCompletionKey) is PULONG_PTR not LPDWORD.