summaryrefslogtreecommitdiffhomepage
path: root/src (follow)
AgeCommit message (Collapse)AuthorFilesLines
2019-08-06nxt_h1proto_t definition was moved to h1proto implementation.Igor Sysoev2-19/+21
2019-08-06Refactored HTTP protocol callback table.Igor Sysoev4-83/+48
2019-07-24Added routing based on request scheme.Axel Duch5-20/+69
Scheme matches exact string “http” or “https”.
2019-07-17Perl: propagated compile options from perl build.Valentin Bartenev1-1/+0
Some Perl compile options affects ABI and not using them while compiling our module resulted in non-working build. Notably on 32-bit Debian 10, Perl is built with -D_FILE_OFFSET_BITS=64 and our module after being compiled without this option caused segmentation faults in unexpected places.
2019-07-17Exiting application process in case of pre_init stage error.Max Romanov1-4/+1
2019-07-17Java: fixing realpath error message.Max Romanov1-1/+1
2019-07-16PHP: fixed script filename setting, broken after 2a71417d297f.Valentin Bartenev1-6/+8
2019-07-05PHP: added PATH_INFO support.Max Romanov1-74/+96
2019-07-05PHP: improved response status code handling.Valentin Bartenev1-12/+2
There's no reason to parse "http_status_line"; the PHP interpreter already does this. If the line contains a valid status code, it's assigned to "http_response_code". This also fixes invalid status line handling, where the nxt_int_parse() function returned -1; it was cast to unsigned, yielding response code 65535.
2019-06-28PHP: removing excessive debug message.Max Romanov1-2/+0
2019-06-28Fixed application crash handling in router.Max Romanov1-4/+4
Before this fix, request in router may hang until timeout expired if application crashed during request processing.
2019-06-28Fixing allocation alignment for port fragments.Max Romanov1-1/+1
All allocated blocks for lvlhash required to be aligned because lower address bits used for various extra information. Using unaligned blocks may cause invalid memory aceess. This was issue found on buildbot running large configuration tests.
2019-06-28Java: adding Content-Type response header for static files.Max Romanov1-0/+1
2019-06-18Decreased level of some shutdown() and send() errors.Igor Sysoev1-2/+2
2019-06-17Node.js: packaging new nxt_napi.h.Max Romanov1-0/+1
File nxt_napi.h (introduced in 53533ba0097c) added into packaged files list. This closes #261 issue on GitHub.
2019-06-10Cookie-based routing should be case-sensitive.Igor Sysoev1-5/+3
2019-05-30Added routing based on cookies.Igor Sysoev2-1/+219
2019-05-30Added routing based on arguments.Igor Sysoev2-15/+209
2019-05-30Handling routing errors.Igor Sysoev3-42/+47
2019-05-30Added routing based on header fields.Igor Sysoev4-67/+409
2019-05-30Fixed segfault with empty routes array.Igor Sysoev1-9/+6
2019-05-30Fixed segfault with empty rule array.Igor Sysoev1-3/+3
2019-05-30Java: fixing typo in context initialization.Max Romanov1-1/+1
2019-05-30Java: fixing request scheme using 'tls' flag.Max Romanov2-2/+6
2019-04-24Configuration: support for POST operations on arrays.Valentin Bartenev3-20/+74
It allows to add an array element without specifying the index.
2019-04-24Configuration: support for manipulations of array elements.Valentin Bartenev1-29/+141
Now PUT and DELETE operations also work on elements. This closes #242 issue on GitHub.
2019-04-24Refactored nxt_conf_op_compile().Valentin Bartenev1-7/+8
Now index is always initialized for create operations. The changes in nxt_conf_op_compile() simplify adding upcoming support of operations with arrays. No functional changes.
2019-04-24Removed unused field from nxt_conf_op_s.Valentin Bartenev1-2/+1
2019-04-17Node.js: using low-case header names as key in req.headers.Max Romanov1-4/+17
Node.js modules (body-parser, row-body) search low-cased names ('content-length', 'content-type' etc.) to properly assemble request body. This closes #246 issue on GitHub.
2019-04-12Controller: rejecting double wildcards.Valentin Bartenev1-1/+6
2019-04-12Simplified cycles in nxt_http_route_rule().Valentin Bartenev1-40/+24
2019-04-10Added support for wildcards in the middle of match patterns.Igor Sysoev2-24/+129
2019-04-03Backed out changeset f74d4dd9c3db.Valentin Bartenev1-0/+8
This closes #240 issue on GitHub.
2019-04-02Removing unused variables and assignments.Max Romanov1-8/+5
Warnings introduced in 53533ba0097c commit.
2019-04-01Adding 'connection' to request as an alias to 'socket'.Max Romanov1-4/+11
Adding actual 'remoteAddress' and 'localAddress' into socket object. This closes #232 issue on GitHub.
2019-04-01Introducing close event to notify about server stop.Max Romanov2-0/+25
This closes #236 on GitHub. Thanks to 0xcdcdcdcd.
2019-04-01Adding syntax sugar.Max Romanov5-654/+882
With exceptions and overloads.
2019-03-25Turning off port read event state after main process fork.Max Romanov1-0/+1
Master port stores two file descriptors and works as a read port on the master process side. After a fork, the port switches into write mode and the read socket closes, but the same event structure is used for the write socket. However, the inherited structure remained in read state, telling the epoll engine to use MOD operation instead of ADD. The patch resets read event state, so the engine may write using proper ADD operation.
2019-03-22Ignoring EPERM error when changing application process uid/gid.Max Romanov1-16/+33
This closes #228 issue on GitHub.
2019-03-22Destroying pool in case of error.Max Romanov2-2/+2
This closes #233 issue on GitHub. Thanks to 洪志道 (Hong Zhi Dao).
2019-03-22Style fixing.Max Romanov1-0/+1
This closes #233 issue on GitHub. Thanks to 洪志道 (Hong Zhi Dao).
2019-03-21Adjusting request schema value according to connection tls state.Max Romanov13-31/+82
This closes #223 issue on GitHub.
2019-03-18Removing unused local variable.Max Romanov1-7/+0
2019-03-18Setting request error flag in error handler.Max Romanov1-0/+2
Absence of this flag is the reason of memory leak in case when client disconnected before receiving all response data.
2019-03-11Style.Andrey Zelenkov20-48/+48
2019-03-06Removed unnecessary abstraction layer.Alexander Borisov6-260/+127
2019-03-05Improving port message fragment recognition.Max Romanov1-16/+36
This is required to assemble fragmented messages correctly. Stream identifier is unique only for messages generated within a process, but the (stream, pid) pair should be enough to avoid collisions. Adding reply_port seems redundant because it's enough to add stream to a pid. This closes #199 issue on GitHub. Thanks to 洪志道 (Hong Zhi Dao).
2019-03-05Fixing EAGAIN processing for port message send.Max Romanov1-8/+26
Sending large plain (exceeding port's max_size, not in shared memory) messages causes message fragmentation. First message fragment is sent successfully, but the next fragment may fail with the EAGAIN error. In this case, the message has to be pushed back to queue head for additional processing. Related to #167 issue on GitHub.
2019-03-05Handling ENOBUFS error same was as EAGAIN.Max Romanov2-2/+12
Unlike EAGAIN, ENOBUFS returned on OSX when trying to send many relatively small (64 bytes) fragments. Found during investigation of #167 issue on GitHub.
2019-03-05Including port message header into message size limit.Max Romanov1-0/+2
Before this fix, large plain message (i.e. configuration) send may fail with the 'Message too big' error, because internal fragmentation implementation does not account for 16 byte message header. This closes #167 issue on GitHub.