Commit Graph

1186 Commits

Author SHA1 Message Date
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
Valentin Bartenev 0b628bfe48 HTTP parser: allowing tabs in field values as per RFC 7230. 2018-03-15 21:07:57 +03:00
Valentin Bartenev 3d2f85d9ca HTTP parser: restricting allowed characters in fields values.
According to RFC 7230 only printable 7-bit ASCII characters are allowed
in field values.
2018-03-15 21:07:56 +03:00
Valentin Bartenev 5a003df1fe HTTP parser: fixed parsing of field values ending with space.
This closes #82 issue on GitHub.
2018-03-15 20:52:39 +03:00
Valentin Bartenev f81fa2a921 Python: safety checks for request processing context.
An application can store request related functions and mistakenly call them
outside of request processing.  Previously this resulted in segmentation
fault due to unset nxt_python_run_ctx.  Now an exception will be raised.
2018-03-15 17:11:13 +03:00
Valentin Bartenev cf2767625f Python: fixed crash if start_response() is called inside iteration.
The start_response() uses nxt_python_run_ctx, but it was unset right
after the application call.
2018-03-15 17:10:24 +03:00
Max Romanov 6da1207d95 Skipping idle state when port already closed. 2018-03-15 17:08:39 +03:00
Max Romanov 7958a22de0 Ignoring response for already terminated request.
Request can be terminated because of invalid response headers and content
should be ignored in this case.
2018-03-14 12:03:47 +03:00
Valentin Bartenev bebc5845f8 Capitalization in the "Server" field. 2018-03-13 20:32:47 +03:00
Max Romanov 1ac9db4750 Releasing application on configuration failure. 2018-03-13 15:32:06 +03:00
Max Romanov ee092b64eb Socket configuration should retain application.
This retains application during reconfiguration if an incoming connection
was already established before the reconfiguration, but no request was yet
created for the connection and thus no application was yet assigned to
the request.
2018-03-07 19:42:06 +03:00
Sergey Kandaurov 4f712e3fd0 Added support for shm_open(SHM_ANON) extension. 2018-03-06 13:55:51 +00:00
Valentin Bartenev 912a49c609 Reduced number of critical log levels. 2018-03-05 17:32:50 +03:00
Max Romanov babf67712e Removed unwanted assertions. 2018-02-20 19:00:30 +03:00
Valentin Bartenev 27b00629e1 Fixed race condition while discovering modules.
Previously, the discovery process might exit before the main process
received a list of available modules.
2018-02-14 16:33:35 +03:00