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
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
Valentin Bartenev
e8aada94de
HTTP parser: allowing underscore in header field names.
2018-01-09 16:50:47 +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
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
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
9a6d3c5775
HTTP keep-alive connections support.
2017-12-28 16:01:06 +03:00
Igor Sysoev
497faf1b9a
Changed nxt_mp_retain() and nxt_mp_release() interfaces.
2017-12-28 16:01:06 +03:00
Max Romanov
b59535b22c
Removed unused variable assignment.
...
Found by Coverity (CID 215301).
2017-12-28 15:58:01 +03:00
Max Romanov
47bc1c53d6
Implementing worker stop after limits.requests.
2017-12-27 17:48:53 +03:00
Max Romanov
5196cf4d50
Rescheduling of pending request after configured timeout.
...
New optional configuration parameter introduced: limits.reschedule_timeout.
Default value 1 second. In the case when request is written to the port
socket 'in advance', it is called 'pending'.
On every completed request, the head of pending request is checked against
reschedule timeout. If this request waiting for execution longer than
timeout, it is cancelled, new port selected for this request.
2017-12-27 17:48:04 +03:00
Max Romanov
baa8c9387b
Fixing code style.
2017-12-27 17:47:42 +03:00
Max Romanov
bef2ec483e
Fixing application timeout.
...
Application timeout limits maximum time of worker response in processing
particular request. Not including the time required to start worker,
time in request queue etc.
2017-12-27 17:47:18 +03:00
Max Romanov
ab138c9166
Changing worker selection precedence.
...
This patch increase precedence of non-started worker over busy worker.
1. idle worker;
2. start new worker;
3. busy worker, but can accept request in advance;
2017-12-27 17:46:39 +03:00
Max Romanov
89c0f7c5db
Implementing the ability to cancel request before worker starts processing it.
2017-12-27 17:46:17 +03:00