Commit Graph

598 Commits

Author SHA1 Message Date
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
Sergey Kandaurov
771e9d3cc3 Fixed formatting in nxt_sprintf() and logging. 2018-01-24 15:16:33 +03:00
Sergey Kandaurov
67c64a99fb Using size_t for the field width type of the "%*s" specifier. 2018-01-24 15:16:32 +03:00
Valentin Bartenev
477e8177b7 HTTP parser: restricting control chars in header fields values.
This also fixes an infinite loop here (found with honggfuzz).
2018-01-24 15:02:56 +03:00
Valentin Bartenev
d1f29ed77e Python: fixed the "wsgi.errors" environment variable name.
This closes issue #76 on GitHub.
2018-01-19 19:45:11 +03:00
Valentin Bartenev
01ec9a5dba Ability to validate configuration options with multiple types. 2018-01-18 15:52:44 +03:00
Max Romanov
2db8e586e5 Reduced duplication of validated app config options.
Common options moved to separate array.  Application-specific arrays refers
to common options.
2018-01-18 09:08:25 +03:00
Max Romanov
c2918a0014 Introducing pretty NXT_CONF_VLDT_END macro. 2018-01-18 09:08:16 +03:00
Igor Sysoev
37a713c217 HTTP: fixed chunked response on 32-bit platforms. 2018-01-16 11:48:38 +03:00
Valentin Bartenev
0c38ff0e66 Checking for major HTTP version. 2018-01-15 20:50:20 +03:00
Valentin Bartenev
a073616fc3 Improved HTTP version representation. 2018-01-15 20:50:14 +03:00
Valentin Bartenev
3fb140d6d2 HTTP parser: improved error reporting. 2018-01-15 20:49:59 +03:00
Valentin Bartenev
84eba82bc8 Version bump. 2018-01-15 18:37:07 +03:00
Valentin Bartenev
845b373bda Fixed reading of the rest of body, broken after 5817734dd9b9. 2018-01-12 21:36:24 +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
Max Romanov
fa49d042a8 PHP: Terminating names with zero.
Fixing issue introduced in changeset 462:17a2c9b27b57 .
2018-01-12 16:37:42 +03:00
Max Romanov
aad4229cbc Initializing script_name.start before using.
This makes gcc 4.4.6 happy.
2018-01-12 11:19:00 +03:00
Max Romanov
349717fb90 Changing relative php scripts paths to real ones.
This is required to run phpMyAdmin.
2018-01-11 22:14:20 +03:00
Igor Sysoev
c105988e51 Fixed DragonFly BSD shared memory implementation. 2018-01-11 17:13:58 +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