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
Max Romanov
18c66cb07d
Improving configuration field mapping names.
...
Avoiding word 'common' as too common.
Couple of assertions reduced to error messages.
2018-02-13 21:28:21 +03:00
Igor Sysoev
5365dadb4b
signalfd() notification should be ignored if nothing was read.
2018-02-12 20:09:13 +03:00
Valentin Bartenev
9646772a00
HTTP: the Date response header.
2018-02-12 16:58:40 +03:00
Valentin Bartenev
dc50773e51
Version bump.
2018-02-12 16:58:38 +03:00
Valentin Bartenev
24d07cfdd2
Made nxt_assert() statements to be compiled only with debug.
2018-02-09 19:07:55 +03:00
Valentin Bartenev
fc496c19ac
Changed the default number of spare processes to 0.
2018-02-09 19:06:53 +03:00
Valentin Bartenev
9d683d37b1
Fixed starting of applications with specified version.
...
The "type" option can contain version number that need to be cut off before
calling nxt_app_parse_type().
The bug was introduced in 4979fe09d9cd.
2018-02-09 19:06:53 +03:00
Valentin Bartenev
c890f53d10
Version bump.
2018-02-09 19:06:53 +03:00
Igor Sysoev
11d5206866
Router: fixed freed memory access race condition.
2018-02-08 16:51:49 +03:00
Alexander Borisov
433eadc2e9
Perl: fixed IO-Object duplication bug.
2018-02-08 16:28:52 +03:00
Valentin Bartenev
31f72401d9
Fixed reading of the rest of body, again.
...
The last attempt in ee5f278e8c81 wasn't enough.
2018-02-07 18:17:41 +03:00
Andrey Zelenkov
949ba262cc
Style fixes.
2018-02-07 15:34:42 +03:00
Max Romanov
d2c85a2d9e
Fixed processing of application response in router.
...
If the first buffer contained only header and there were other buffers in chain,
those buffers were not processed. In particular, this broke Perl application
responses with empty body.
2018-02-07 13:47:04 +03:00
Alexander Borisov
79259d1ebd
Perl: added more checks for 'body' variable
2018-02-06 21:13:57 +03:00
Andrey Zelenkov
b4e467e669
Fixed configuration checks for "max" property.
2018-02-06 20:31:48 +03:00
Max Romanov
f7195e7016
Fixed typo in assertion statement introduced in 4979fe09d9cd.
...
Found by Coverity (CID 260375).
2018-02-02 14:08:18 +03:00
Alexander Borisov
960962ddce
Added Perl support.
2018-01-31 15:47:00 +03:00
Max Romanov
9cd4fdbdb7
Introducing extended app process management.
...
- Pre-fork 'processes.spare' application processes;
- fork more processes to keep 'processes.spare' idle processes;
- fork on-demand up to 'processes.max' count;
- scale down idle application processes above 'processes.spare' after
'processes.idle_timeout';
- number of concurrently started application processes also limited by
'processes.spare' (or 1, if spare is 0).
2018-01-29 16:17:36 +03:00
Valentin Bartenev
7fe8f72364
HTTP parser: simplified nxt_http_parse_field_value().
...
There's no need in loop after 4ac474b68658.
Found by Coverity (CID 259713).
2018-01-25 10:31:22 +03:00