Commit Graph

450 Commits

Author SHA1 Message Date
Valentin Bartenev
a20830ff55 Router: fixed race condition while access log reopening.
In order to reopen access log, the router process creates a memory pool
and allocates a buffer to send RPC message for the main process.

Previously, the memory pool was destroyed when RPC response handler was
called.  It appeared, that the buffer completion handler could be not
triggered by that time and still remained in a queue.

Now the memory pool is destroyed only after both events are happen.
2018-04-19 19:48:58 +03:00
Alexander Borisov
da22c2ca96 Python: returning write() callable object from start_response().
According to PEP (3)333 the start_respose() function must return
a write() callable.

This closes #107 issue on GitHub.
2018-04-19 17:35:07 +03:00
Valentin Bartenev
b06a0c95d0 Removed duplicating socket address parsing function.
This also fixes #101 issue on GitHub.  The function previously used to
parse IPv6 address of control socket was broken.  Now the working function
is used instead.
2018-04-18 17:28:22 +03:00
Valentin Bartenev
54ccb32333 Added missing cleanup when nxt_port_socket_write() failed. 2018-04-18 17:28:04 +03:00
Valentin Bartenev
ab4f867996 Added missing checks if nxt_port_rpc_register_handler() failed.
This closes #97 issue on GitHub.
Thanks to 洪志道 (Hong Zhi Dao).
2018-04-17 21:13:43 +03:00
Valentin Bartenev
555141f798 Improved "unitd" command line help. 2018-04-13 20:07:02 +03:00
Valentin Bartenev
115949c50f Version bump. 2018-04-13 19:10:15 +03:00
Valentin Bartenev
946cfa32a8 Version bump. 2018-04-12 19:39:25 +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
Valentin Bartenev
c610b35649 Controller: added "/config" prefix for the configuration object. 2018-04-11 18:23:58 +03:00
Valentin Bartenev
da61cfd98b Access log reopening. 2018-04-11 18:23:58 +03:00
Valentin Bartenev
204c394721 Initial access log support. 2018-04-11 18:23: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
Valentin Bartenev
dc75c83950 Fixed pipelined request processing, broken by 9e16499b63f0. 2018-04-11 12:49:58 +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
Valentin Bartenev
41317e37da HTTP parser: saving partial method.
This is useful for log purposes.
2018-04-10 16:51:22 +03:00
Valentin Bartenev
8d697e8004 HTTP parser: saving unsupported version.
This is useful for log purposes.
2018-04-10 16:51:22 +03:00
Valentin Bartenev
b1b9c78362 HTTP parser: correct "target" for partial or invalid request line. 2018-04-10 16:51:22 +03:00
Valentin Bartenev
eb51264710 Processing of partially parsed HTTP header.
This is useful for log purposes.
2018-04-09 19:16:19 +03:00
Valentin Bartenev
96927e7d0c Controller: fixed a memory leak when PUT operation failed.
Thanks to 洪志道 (Hong Zhi Dao).
2018-04-08 14:08:06 +03:00
Max Romanov
8934afee24 Go: Forced WriteHeader after application request processing.
Application should create response for every request.
If not, Unit package will do it.
2018-04-06 16:27:46 +03:00
Max Romanov
2f3b9d4583 Handling error return from application 'run()' function.
Server error response generated or connection closed.
2018-04-05 17:20:26 +03:00
Max Romanov
d748f74f2b Stopping timed out application process. 2018-04-05 17:19:25 +03:00
Valentin Bartenev
c0a423aa74 Fixed NXT_INT64_T_HEXLEN.
This closes #89 issue on GitHub.
Thanks to hongzhidao.
2018-04-05 15:54:08 +03:00
Valentin Bartenev
d15b4ca906 Style. 2018-04-05 15:49:41 +03:00
Alexander Borisov
49bd3a21e0 Changed version processing for modules. 2018-04-04 18:53:39 +03:00
Valentin Bartenev
0665896a55 Style: capitalized letters in hexadecimal literals. 2018-04-04 18:13:05 +03:00
Alexander Borisov
f2c0c18f8b Ruby: added 'enc/trans/transdb' module for converting encodings.
This closes #92 issue on GitHub.
2018-04-03 16:26:22 +03:00
Igor Sysoev
fa04c05aa0 HTTP: using r->mem_pool retention counter for response buffers. 2018-04-03 16:28:26 +03:00
Valentin Bartenev
f4cb476feb Version bump. 2018-04-02 17:42:36 +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
Alexander Borisov
37051b6c15 Added Ruby support. 2018-03-21 16:50:07 +03:00
Max Romanov
778a90c319 Triggering RPC error for all handlers on port close.
This is required to avoid crashes and memory leaks on Unit exit.
2018-03-21 16:55:09 +03:00
Max Romanov
b865db1bb7 Registered RPC handlers affects port use counters.
Service process port gets closed and released by runtime on process exit,
but there can be active RPC handlers, which uses port structure.
2018-03-21 16:55:02 +03:00
Alexander Borisov
41c872010a Perl: improvements to support PSGI specification. 2018-03-19 16:46:17 +03:00
Valentin Bartenev
e254eecb77 PHP: fixed segfault on initialization.
PHP SAPI can call log handler while initializing.  Particularly, that happens
if there's a problem in loading some extension specified in php.ini file.
On this stage server context is empty, so now nxt_thread_log_error() is used.
2018-03-16 18:19:48 +03:00
Valentin Bartenev
701a54c177 HTTP parser: excluding leading and trailing tabs from field values.
As required by RFC 7230.
2018-03-15 21:08:29 +03:00