aboutsummaryrefslogtreecommitdiff
path: root/src/core
Commit message (Collapse)AuthorAge
* Version bump.Maxim Dounin2021-04-21
|
* Introduced the "keepalive_time" directive.Maxim Dounin2021-04-08
| | | | | | | Similar to lingering_time, it limits total connection lifetime before keepalive is switched off. The default is 1 hour, which is close to the total maximum connection lifetime possible with default keepalive_requests and keepalive_timeout.
* Version bump.Maxim Dounin2021-04-05
|
* Resolver: added missing event handling after reading.Maxim Dounin2021-03-28
| | | | | | | | | | | If we need to be notified about further events, ngx_handle_read_event() needs to be called after a read event is processed. Without this, an event can be removed from the kernel and won't be reported again, notably when using oneshot event methods, such as eventport on Solaris. While here, error handling is also added, similar to one present in ngx_resolver_tcp_read(). This is not expected to make a difference and mostly added for consistency.
* Version bump.Maxim Dounin2021-03-11
|
* Version bump.Ruslan Ermilov2021-02-20
|
* Additional connections reuse.Maxim Dounin2021-02-11
| | | | | | | | | If ngx_drain_connections() fails to immediately reuse any connections and there are no free connections, it now additionally tries to reuse a connection again. This helps to provide at least one free connection in case of HTTP/2 with lingering close, where merely trying to reuse a connection once does not free it, but makes it reusable again, waiting for lingering close.
* Core: removed post_accept_timeout.Maxim Dounin2021-01-19
| | | | | | | | | | Keeping post_accept_timeout in ngx_listening_t is no longer needed since we've switched to 1 second timeout for deferred accept in 5541:fdb67cfc957d. Further, using it in HTTP code can result in client_header_timeout being used from an incorrect server block, notably if address-specific virtual servers are used along with a wildcard listening socket, or if we've switched to a different server block based on SNI in SSL handshake.
* Version bump.Maxim Dounin2021-01-11
|
* Version bump.Ruslan Ermilov2020-11-26
|
* Core: "-e" command line option.Igor Ippolitov2020-11-19
| | | | | | | | | When installing or running from a non-root user it is sometimes required to override default, compiled in error log path. There was no way to do this without rebuilding the binary (ticket #147). This patch introduced "-e" command line option which allows one to override compiled in error log path.
* Core: added format specifiers to output binary data as hex.Vladimir Homutov2020-10-28
| | | | | | | Now "s", "V", and "v" format specifiers may be prefixed with "x" (lowercase) or "X" (uppercase) to output corresponding data in hexadecimal format. In collaboration with Maxim Dounin.
* Version bump.Vladimir Homutov2020-11-05
|
* Core: ngx_conf_set_keyval_slot() now accepts NGX_CONF_UNSET_PTR.Maxim Dounin2020-10-22
| | | | | | | | | | With this change, it is now possible to use ngx_conf_merge_ptr_value() to merge keyval arrays. This change actually follows much earlier changes in ngx_conf_merge_ptr_value() and ngx_conf_set_str_array_slot() in 1452:cd586e963db0 (0.6.10) and 1701:40d004d95d88 (0.6.22). To preserve compatibility with existing 3rd party modules, both NULL and NGX_CONF_UNSET_PTR are accepted for now.
* Version bump.Maxim Dounin2020-10-03
|
* Resolver: improved error messages (ticket #2024).Maxim Dounin2020-09-28
|
* Version bump.Roman Arutyunyan2020-08-14
|
* Core: reusing connections in advance.Maxim Dounin2020-08-10
| | | | | | | | | | | | | Reworked connections reuse, so closing connections is attempted in advance, as long as number of free connections is less than 1/16 of worker connections configured. This ensures that new connections can be handled even if closing a reusable connection requires some time, for example, for a lingering close (ticket #2017). The 1/16 ratio is selected to be smaller than 1/8 used for disabling accept when working with accept mutex, so nginx will try to balance new connections to different workers first, and will start reusing connections only if this won't help.
* Core: added a warning about reusing connections.Maxim Dounin2020-08-10
| | | | | | | | | | | Previously, reusing connections happened silently and was only visible in monitoring systems. This was shown to be not very user-friendly, and administrators often didn't realize there were too few connections available to withstand the load, and configured timeouts (keepalive_timeout and http2_idle_timeout) were effectively reduced to keep things running. To provide at least some information about this, a warning is now logged (at most once per second, to avoid flooding the logs).
* Core: enclosed parameters of the ngx_buf.h macros in parentheses.balus2020-07-27
|
* Core: close PID file when writing fails.Ruslan Ermilov2020-07-21
| | | | Reported by Jinhua Tan.
* Version bump.Roman Arutyunyan2020-07-09
|
* Fixed removing of listening UNIX sockets when "changing binary".Ruslan Ermilov2020-06-01
| | | | | | When changing binary, sending a SIGTERM to the new binary's master process should not remove inherited UNIX sockets unless the old binary's master process has exited.
* Version bump.Maxim Dounin2020-05-26
|
* Version bump.Ruslan Ermilov2020-04-23
|
* Version bump.Ruslan Ermilov2020-03-16
|
* Version bump.Sergey Kandaurov2020-02-05
|
* Version bump.Maxim Dounin2019-12-27
|
* Version bump.Maxim Dounin2019-12-05
|
* Parsing server PROXY protocol address and port (ticket #1206).Roman Arutyunyan2019-10-21
| | | | | New variables $proxy_protocol_server_addr and $proxy_protocol_server_port are added both to HTTP and Stream.
* Core: moved PROXY protocol fields out of ngx_connection_t.Roman Arutyunyan2019-10-21
| | | | | | Now a new structure ngx_proxy_protocol_t holds these fields. This allows to add more PROXY protocol fields in the future without modifying the connection structure.
* Version bump.Roman Arutyunyan2019-10-24
|
* Core: removed dead code in ngx_rbtree_delete().Vladimir Homutov2019-09-30
| | | | | The result of ngx_rbtree_min() is always a node with the left child equal to sentinel, thus the check is unnecessary.
* Version bump.Vladimir Homutov2019-09-30
|
* Resolver: fixed possible use-after-free while resolving PTR.Sergey Kandaurov2019-09-10
| | | | | | | | | | Previously, if a response to the PTR request was cached, and ngx_resolver_dup() failed to allocate memory for the resulting name, then the original node was freed but left in expire_queue. A subsequent address resolving would end up in a use-after-free memory access of the node either in ngx_resolver_expire() or ngx_resolver_process_ptr(), when accessing it through expire_queue. The fix is to leave the resolver node intact.
* Version bump.Maxim Dounin2019-08-16
|
* Version bump.Maxim Dounin2019-07-31
|
* Core: fixed memory leak on error, missed in c3f60d618c17.Maxim Dounin2019-07-19
| | | | Found by Coverity (CID 1451664).
* Core: fixed segfault with too large bucket sizes (ticket #1806).Maxim Dounin2019-07-18
| | | | | | | | | | To save memory hash code uses u_short to store resulting bucket sizes, so maximum bucket size is limited to 65536 minus ngx_cacheline_size (larger values will be aligned to 65536 which will overflow u_short). However, there were no checks to enforce this, and using larger bucket sizes resulted in overflows and segmentation faults. Appropriate safety checks to enforce this added to ngx_hash_init().
* Version bump.Maxim Dounin2019-07-09
|
* Version bump.Roman Arutyunyan2019-05-27
|
* Core: enabled "include" in any context (ticket #1615).Vladimir Homutov2019-04-09
|
* Version bump.Vladimir Homutov2019-04-24
|
* Fixed incorrect length handling in ngx_utf8_length().Maxim Dounin2019-04-15
| | | | | | | | | | | | | Previously, ngx_utf8_decode() was called from ngx_utf8_length() with incorrect length, potentially resulting in out-of-bounds read when handling invalid UTF-8 strings. In practice out-of-bounds reads are not possible though, as autoindex, the only user of ngx_utf8_length(), provides null-terminated strings, and ngx_utf8_decode() anyway returns an errors when it sees a null in the middle of an UTF-8 sequence. Reported by Yunbin Liu.
* Version bump.Maxim Dounin2019-04-15
|
* Version bump.Sergey Kandaurov2019-03-26
|
* Listen port ranges.Roman Arutyunyan2019-03-06
| | | | | | | | | | A range is specified with a dash. For each port in a range a separate listen socket is created. Examples: listen 8080-9000; listen example.com:80-88;
* Removed sorting of getaddrinfo() results.Roman Arutyunyan2019-03-20
| | | | | | | | | | Previously the ngx_inet_resolve_host() function sorted addresses in a way that IPv4 addresses came before IPv6 addresses. This was implemented in eaf95350d75c (1.3.10) along with the introduction of getaddrinfo() which could resolve host names to IPv6 addresses. Since the "listen" directive only used the first address, sorting allowed to preserve "listen" compatibility with the previous behavior and with the behavior of nginx built without IPv6 support. Now "listen" uses all resolved addresses which makes sorting pointless.
* Multiple addresses in "listen".Roman Arutyunyan2019-03-15
| | | | | | Previously only one address was used by the listen directive handler even if host name resolved to multiple addresses. Now a separate listening socket is created for each address.
* Version bump.Maxim Dounin2019-03-03
|