summaryrefslogtreecommitdiffhomepage
path: root/src (follow)
AgeCommit message (Collapse)AuthorFilesLines
2018-02-07Fixed processing of application response in router.Max Romanov1-1/+4
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-06Perl: added more checks for 'body' variableAlexander Borisov1-1/+6
2018-02-06Fixed configuration checks for "max" property.Andrey Zelenkov1-16/+11
2018-02-02Fixed typo in assertion statement introduced in 4979fe09d9cd.Max Romanov1-1/+1
Found by Coverity (CID 260375).
2018-01-31Added Perl support.Alexander Borisov8-10/+1789
2018-01-29Introducing extended app process management.Max Romanov9-100/+710
- 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-25HTTP parser: simplified nxt_http_parse_field_value().Valentin Bartenev1-15/+11
There's no need in loop after 4ac474b68658. Found by Coverity (CID 259713).
2018-01-24Fixed formatting in nxt_sprintf() and logging.Sergey Kandaurov19-28/+29
2018-01-24Using size_t for the field width type of the "%*s" specifier.Sergey Kandaurov13-28/+39
2018-01-24HTTP parser: restricting control chars in header fields values.Valentin Bartenev1-3/+1
This also fixes an infinite loop here (found with honggfuzz).
2018-01-19Python: fixed the "wsgi.errors" environment variable name.Valentin Bartenev1-2/+2
This closes issue #76 on GitHub.
2018-01-18Ability to validate configuration options with multiple types.Valentin Bartenev1-45/+102
2018-01-18Reduced duplication of validated app config options.Max Romanov1-65/+17
Common options moved to separate array. Application-specific arrays refers to common options.
2018-01-18Introducing pretty NXT_CONF_VLDT_END macro.Max Romanov1-6/+9
2018-01-16HTTP: fixed chunked response on 32-bit platforms.Igor Sysoev1-1/+1
2018-01-15Checking for major HTTP version.Valentin Bartenev5-13/+35
2018-01-15Improved HTTP version representation.Valentin Bartenev3-16/+19
2018-01-15HTTP parser: improved error reporting.Valentin Bartenev4-32/+59
2018-01-15Version bump.Valentin Bartenev1-2/+2
2018-01-12Fixed reading of the rest of body, broken after 5817734dd9b9.Valentin Bartenev1-1/+0
2018-01-12HTTP: request body length was not passed to application.Igor Sysoev1-0/+1
The bug has appeared in changeset 5817734dd9b9.
2018-01-12PHP: Terminating names with zero.Max Romanov1-4/+7
Fixing issue introduced in changeset 462:17a2c9b27b57 .
2018-01-12Initializing script_name.start before using.Max Romanov1-0/+1
This makes gcc 4.4.6 happy.
2018-01-11Changing relative php scripts paths to real ones.Max Romanov3-48/+73
This is required to run phpMyAdmin.
2018-01-11Fixed DragonFly BSD shared memory implementation.Igor Sysoev2-2/+3
2018-01-11HTTP: fixed large header buffers allocation and deallocation.Igor Sysoev1-29/+32
This closes #74 issue on GitHub.
2018-01-11HTTP: request body was not passed to application.Igor Sysoev1-0/+5
The bug has appeared in changeset 5817734dd9b9.
2018-01-09HTTP parser: allowing underscore in header field names.Valentin Bartenev2-2/+2
2017-12-29Using correct pointer and size for memzero operation.Igor Sysoev2-3/+6
Found by Coverity (CID 215689).
2017-12-29Using correct pointer in test operation.Igor Sysoev1-1/+1
Found by Coverity (CID 215687).
2017-12-29Corrected allocation size of HTTP response header.Igor Sysoev1-2/+6
2017-12-29Version bump.Igor Sysoev1-2/+2
2017-12-28Fixed Go package and PHP module building.0.3Igor Sysoev2-2/+2
Go package and PHP module could not be built after changeset 5817734dd9b9.
2017-12-28Removed duplicate declaration.Igor Sysoev8-10/+7
2017-12-28Removed duplicate declaration.Igor Sysoev1-3/+0
2017-12-28Disabled Nagle algorithm for keep-alive connections.Igor Sysoev1-0/+4
2017-12-28Fixing memory leak introduced in changeset 5817734dd9b9.Igor Sysoev1-1/+4
2017-12-28HTTP keep-alive connections support.Igor Sysoev16-891/+1989
2017-12-28Changed nxt_mp_retain() and nxt_mp_release() interfaces.Igor Sysoev9-65/+72
2017-12-28Removed unused variable assignment.Max Romanov1-1/+0
Found by Coverity (CID 215301).
2017-12-27Implementing worker stop after limits.requests.Max Romanov2-4/+14
2017-12-27Rescheduling of pending request after configured timeout.Max Romanov4-88/+222
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-27Fixing code style.Max Romanov1-16/+16
2017-12-27Fixing application timeout.Max Romanov4-107/+362
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-27Changing worker selection precedence.Max Romanov2-23/+48
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-27Implementing the ability to cancel request before worker starts processing it.Max Romanov14-357/+542
2017-12-27HTTP parser: introduced nxt_http_parse_fields().Valentin Bartenev2-0/+19
2017-12-27Introducing application 'atexit' hook.Max Romanov7-5/+36
Finalizing Python interpreter. This closes #65 issue on GitHub.
2017-12-26nxt_conn_close() should disable all pending write operations.Igor Sysoev1-0/+6
2017-12-26HTTP parser: fixed memory overflow in the collisions test.Valentin Bartenev1-0/+1
The level hash uses the NULL value as the indicator of a free entry in a bucket. So, inserting a NULL value breaks the hash and can lead to a bucket overflow. In case of the collision counter, the value wasn't initialized, since it's not needed for the purpose of checking collisions. As a result, it might contain any garbage from the stack and in some rare cases the value was NULL. Now the value is initilized.