Commit Graph
100 Commits
Author SHA1 Message Date
Igor Sysoev a2c1907fda Decreased level of some shutdown() and send() errors. 2019-06-18 18:01:03 +03:00
Igor Sysoev 1f8c395fc0 Cookie-based routing should be case-sensitive. 2019-06-10 18:47:35 +03:00
Igor Sysoev 6a775f58af Added routing based on cookies. 2019-05-30 15:33:51 +03:00
Igor Sysoev 5fb3daa5af Added routing based on arguments. 2019-05-30 15:33:51 +03:00
Igor Sysoev 16273cf1c6 Handling routing errors. 2019-05-30 15:33:51 +03:00
Igor Sysoev 0ba7cfce75 Added routing based on header fields. 2019-05-30 15:33:51 +03:00
Igor Sysoev 3aaebe4169 Fixed segfault with empty routes array. 2019-05-30 15:33:51 +03:00
Igor Sysoev f2aa190f60 Fixed segfault with empty rule array. 2019-05-30 15:33:51 +03:00
Igor Sysoev 8339b15158 Added support for wildcards in the middle of match patterns. 2019-04-10 13:47:34 +03:00
Igor Sysoev 86d4a0e473 Fixed TLS connections hanging.
After event is delivered from the kernel its further processing is blocked.
Non-ready TSL I/O operation should mark connection I/O state as not ready
to unblock events and to allow their further processing. Otherwise
the connection hangs.
2019-03-01 18:20:05 +03:00
Igor Sysoev 834e8ca576 Fixed timer and event race condition.
When idle timeout occurs at the same time as a request comes in,
the timer handler closes connection while the read event triggers
request processing, and this eventually leads to segmentation fault.
2019-02-28 18:04:11 +03:00
Igor Sysoev d4ccaae900 Initial routing implementation. 2019-02-27 16:41:11 +03:00
Igor Sysoev 95c9bba33b Introduced nxt_memcpy_upcase(). 2019-02-26 19:48:44 +03:00
Igor Sysoev ce650ea0f7 Introduced nxt_conf_array_qsort(). 2019-02-26 19:48:41 +03:00
Igor Sysoev 547082171e Introduced nxt_conf_array_elements_count(). 2019-02-26 19:48:38 +03:00
Igor Sysoev 444b9ffea9 Keepalive mode is disabled on HTTP header parsing errors. 2019-02-26 19:12:16 +03:00
Igor Sysoev c96b2baca5 TLS certificates should be freed per listener.
This fixes memory leak if configuration uses more than one TLS cerificate.
2019-02-22 17:32:38 +03:00
Igor Sysoev acb5b0aad7 Ignoring HUP signal in main process. 2019-02-18 18:34:20 +03:00
Igor Sysoev bb11e9036f Fixed memory leak on response body sending failure. 2019-02-18 17:28:55 +03:00
Igor Sysoev fd6a6a5514 Fixed processing Unix listening socket failures.
This is related to issue #198 on GitHub.
2019-01-21 18:39:19 +03:00
Igor Sysoev 627b116c4d Testing correct value. 2019-01-18 16:18:36 +03:00
Igor Sysoev 23a6a8e451 Testing correct value. 2019-01-18 16:18:36 +03:00
Igor Sysoev 92ddc15a84 Checking error states in I/O handlers. 2018-11-13 19:04:48 +03:00
Igor Sysoev d4a99aad84 Backout of ba94959b1dec and improving epoll error handling. 2018-10-23 16:31:42 +03:00
Igor Sysoev 57991dc3f2 Fixed termination signal handlers in worker processes.
This closes #99 issue on GitHub.
Thanks to Julian Brost.
2018-10-22 17:43:31 +03:00
Igor Sysoev 50dd54877d Improved epoll failures handling.
epoll changes are committed to the kernel before epoll_wait() or
on changes array overflow.  In the latter case if there are errors
epoll_wait() timeout was not set to zero.

This commit is related to #173 issue on GitHub.
Thanks to 洪志道 (Hong Zhi Dao).
2018-10-22 17:43:28 +03:00
Igor Sysoev deeb276d23 Removed duplicate code in epoll.
This commit is related to #173 issue on GitHub.
Thanks to 洪志道 (Hong Zhi Dao).
2018-10-22 16:25:58 +03:00
Igor Sysoev b5d4fc939e Disabled chunked transfer encoding for 204 responses. 2018-09-28 17:32:02 +03:00
Igor Sysoev 92da8dae1e Fixed bug in socket write error handling.
The bug has been introduced in e3972a4a9c73.
2018-09-28 15:12:47 +03:00
Igor Sysoev b5d76454ed Added nginx error 497 response. 2018-09-20 15:05:38 +03:00
Igor Sysoev 96cd68b340 Added SSL/TLS support on connection level. 2018-09-20 15:05:37 +03:00
Igor Sysoev 7458f66dda Fixed non-auto-reset timers. 2018-09-17 16:37:20 +03:00
Igor Sysoev 4bb4525031 Removed deprecated MacOSX OSSpinLockLock(). 2018-09-17 16:37:17 +03:00
Igor Sysoev 74b69f5e95 Fixed typo.
This closes #166 issue on GitHub.
Thanks to 洪志道 (Hong Zhi Dao).
2018-09-17 16:37:13 +03:00
Igor Sysoev ab5b67b45d Fixed typo.
This closes #165 issue on GitHub.
Thanks to 洪志道 (Hong Zhi Dao).
2018-09-17 16:37:11 +03:00
Igor Sysoev 8654372842 Fixed segfault on listening socket close.
Now keep-alive connection sends 408 response if listening
socket was closed while reconfiguration.
2018-07-30 17:05:49 +03:00
Igor Sysoev 69a1169cae Sending 408 response on idle connection timeout. 2018-07-30 17:05:48 +03:00
Igor Sysoev 12c890c1ca Added OpenBSD 3.9 getthrid().
Prodded by David Carlier.
2018-07-27 16:57:45 +03:00
Igor Sysoev 7e41f9d108 Refactored thread ID functions.
nxt_thread_tid() was moved to src/nxt_thread.c
nxt_thread_get_tid() was moved to src/nxt_thread_id.h.
src/nxt_thread_id.c was removed.
2018-07-27 16:53:26 +03:00
Igor Sysoev bd8eacf52d Fixed socket write error handling. 2018-07-12 18:29:22 +03:00
Igor Sysoev 5de582f6db Disabling keep-alive connection on errors. 2018-07-12 18:29:22 +03:00
Igor Sysoev 071412a9ae Fixed bug in "send_timeout" handling. 2018-07-12 18:29:22 +03:00
Igor Sysoev 313da403a5 Removed -mmacosx-version-min option. 2018-06-28 18:31:27 +03:00
Igor Sysoev 50228b35b6 Removed usage of nxt_thread_context in loadable modules.
This change allows to use __thread class storage on MacOSX.
2018-06-28 18:31:13 +03:00
Igor Sysoev 51b37f0693 Using appropriate default modules and state directories. 2018-06-28 17:36:48 +03:00
Igor Sysoev 61df281464 Added check of "make install" ability.
This closes #136 issue on GitHub.
2018-06-28 17:36:42 +03:00
Igor Sysoev 606eda045b Removed '\r' and '\n' artifact macros. 2018-06-25 16:56:45 +03:00
Igor Sysoev 3ad1acca12 Fixed exit status on start failure.
This and previous commit close #131 issue on GitHub.
2018-06-18 17:14:32 +03:00
Igor Sysoev cb36b07686 Removing Unix control socket on start failure.
The bug had appeared in 5cc5002a788e when process type has been
converted to bitmask. This commit reverts the type back to a number.

This commit is related to #131 issue on GitHub.
2018-06-18 17:14:30 +03:00
Igor Sysoev 6273819080 Removed unused single process type. 2018-06-18 17:14:25 +03:00
Igor Sysoev ff6ca2a82c Fixed keep-alive hanging after reconfiguration. 2018-05-30 18:46:05 +03:00
Igor Sysoev e54fb892a4 PHP: fixed building on MacOSX with --ld-opt= option. 2018-05-30 18:31:26 +03:00
Igor Sysoev d3356f7ad2 Added version number to main process title. 2018-05-29 19:51:27 +03:00
Igor Sysoev 8ed36563d1 Fixed alerts about freeing non-freeable memory on connection close.
The nxt_conn_t object is allocated by nxt_zget() and should not be freed.
2018-04-20 19:46:36 +03:00
Igor Sysoev b95d5b8882 Prevention of freeing non-freeable memory pool block. 2018-04-20 19:46:36 +03:00
Igor Sysoev d5a96ff000 Miscellaneous changes. 2018-04-12 17:11:35 +03:00
Igor Sysoev 8afa51415e Disabling timer when request header has been entirely read. 2018-04-12 17:11:34 +03:00
Igor Sysoev 8e9a950374 Fixed idle timeout, broken in b3e55c647741. 2018-04-12 17:11:33 +03:00
Igor Sysoev c7e575d5c6 Introducing connection state io_read_handler. 2018-04-11 17:33:18 +03:00
Igor Sysoev 0be4f1f693 Keepalive processing optimization. 2018-04-11 17:33:16 +03:00
Igor Sysoev 1fab645246 Added "408 Request Timeout" error response. 2018-04-10 19:38:48 +03:00
Igor Sysoev 73bdb5ec09 Refactored HTTP header parsing. 2018-04-10 19:38:45 +03:00
Igor Sysoev 0a44ac371a Splitting HTTP processing in more granulate connection states. 2018-04-10 19:30:45 +03:00
Igor Sysoev fa04c05aa0 HTTP: using r->mem_pool retention counter for response buffers. 2018-04-03 16:28:26 +03:00
Igor Sysoev 5177b085b1 nxt_lvlhsh_each() refactoring and nxt_lvlhsh_each_init(). 2018-03-29 16:35:42 +03:00
Igor Sysoev 5a9c23e2b4 Using nxt_lvlhsh_peek() for port hashes. 2018-03-29 16:35:38 +03:00
Igor Sysoev 7205bf4b86 Using nxt_lvlhsh_peek() and nxt_lvlhsh_retrieve(). 2018-03-29 16:35:36 +03:00
Igor Sysoev aad7752527 nxt_lvlhsh_retrieve(). 2018-03-29 16:35:32 +03:00
Igor Sysoev 8a4c8d64b2 nxt_lvlhsh_peek(). 2018-03-29 16:35:26 +03:00
Igor Sysoev bd451a50a9 Removed unused macros and functions. 2018-03-29 16:35:03 +03:00
Igor Sysoev 18377ad288 nxt_port_buf_completion() and nxt_sendbuf_completion().
nxt_sendbuf_completion() has been renamed to nxt_port_buf_completion()
and moved to src/nxt_port_socket.c.  nxt_sendbuf_completion0() has been
renamed to nxt_sendbuf_completion().
2018-03-28 19:10:02 +03:00
Igor Sysoev cd340b09e6 Using more expressive name for field. 2018-03-28 19:09:56 +03:00
Igor Sysoev bb8c285678 Using type for nxt_msec_diff(). 2018-03-28 19:07:40 +03:00
Igor Sysoev baf63dfe74 Aligned macosx-version-min flag for test and build environments.
The flag has been misaligned in the changeset 4979fe09d9cd.
2018-03-28 19:07:32 +03:00
Igor Sysoev 5365dadb4b signalfd() notification should be ignored if nothing was read. 2018-02-12 20:09:13 +03:00
Igor Sysoev 11d5206866 Router: fixed freed memory access race condition. 2018-02-08 16:51:49 +03:00
Igor Sysoev 37a713c217 HTTP: fixed chunked response on 32-bit platforms. 2018-01-16 11:48:38 +03:00
Igor Sysoev 3cc529ddea Added tag 0.4 for changeset 6071f4300f76 2018-01-15 18:00:48 +03:00
Igor Sysoev ac433f1f30 Added version 0.4 CHANGES. 2018-01-15 15:05:25 +03:00
Igor Sysoev a35732bf05 PHP: "--lib-static" option uses "--lib-path" option. 2018-01-15 15:05:22 +03:00
Igor Sysoev c9ae198016 PHP: added "--lib-static" configure option.
The libraries returned by "php-config --libs" are required to link with
static libphp.a.  Dynamic libphp.so contains the required libraries names.
2018-01-12 18:15:58 +03:00
Igor Sysoev 059695eeed HTTP: request body length was not passed to application.
The bug has appeared in changeset 5817734dd9b9.
2018-01-12 17:54:50 +03:00
Igor Sysoev c105988e51 Fixed DragonFly BSD shared memory implementation. 2018-01-11 17:13:58 +03:00
Igor Sysoev f7bc2e1560 Using hg archive instead of copying to make distribution tarball. 2018-01-11 09:54:35 +03:00
Igor Sysoev 2fa203f2da HTTP: fixed large header buffers allocation and deallocation.
This closes #74 issue on GitHub.
2018-01-11 09:49:36 +03:00
Igor Sysoev b09227fa5c HTTP: request body was not passed to application.
The bug has appeared in changeset 5817734dd9b9.
2018-01-11 09:49:35 +03:00
Igor Sysoev 30a83a1159 Using correct pointer and size for memzero operation.
Found by Coverity (CID 215689).
2017-12-29 19:42:54 +03:00
Igor Sysoev 4c4981f992 Using correct pointer in test operation.
Found by Coverity (CID 215687).
2017-12-29 18:43:55 +03:00
Igor Sysoev bcbe6df8af Corrected allocation size of HTTP response header. 2017-12-29 18:43:54 +03:00
Igor Sysoev 965a95d602 Version bump. 2017-12-29 18:43:51 +03:00
Igor Sysoev d45326481c Added tag 0.3 for changeset b8400e8feb36 2017-12-28 21:25:22 +03:00
Igor Sysoev 8492ba945b Fixed Go package and PHP module building.
Go package and PHP module could not be built after changeset 5817734dd9b9.
2017-12-28 21:07:28 +03:00
Igor Sysoev dbd7540a04 Removed duplicate declaration. 2017-12-28 20:50:49 +03:00
Igor Sysoev c4894036c3 Removed tag 0.3 2017-12-28 20:37:46 +03:00
Igor Sysoev 9f619eb707 Added tag 0.3 for changeset c059dbae9ac3 2017-12-28 20:25:10 +03:00
Igor Sysoev dc47f02307 Removed duplicate declaration. 2017-12-28 20:12:19 +03:00
Igor Sysoev 795a244bd0 Disabled Nagle algorithm for keep-alive connections. 2017-12-28 20:12:13 +03:00
Igor Sysoev ecba3d80f9 Fixing memory leak introduced in changeset 5817734dd9b9. 2017-12-28 20:08:15 +03:00
Igor Sysoev ea40378206 Removed tag 0.3 2017-12-28 20:06:29 +03:00
Igor Sysoev c9024a3dc8 Added tag 0.3 for changeset ab13db235c19 2017-12-28 16:32:07 +03:00