Max Romanov
686f5b1436
Changing the sequence of body send execution.
...
Request state ready_handler required for further websocket events processing.
It is not required for regular response transferring.
2019-08-16 14:55:18 +03:00
Max Romanov
29911538ea
Improving response header fields processing.
...
Fields are filtered one by one before being added to fields list.
This avoids adding and then skipping connection-specific fields.
2019-08-16 00:56:38 +03:00
Max Romanov
caea9d3c07
Fixing multi-thread port write racing conditions.
2019-08-16 00:48:11 +03:00
Max Romanov
1b095ff417
Renaming supplemental request structures in router.
...
- nxt_req_app_link_t -> nxt_request_app_link_t
- nxt_req_conn_link_t -> nxt_request_rpc_data_t
Corresponding abbreviated field names also changed:
- ra -> req_app_link
- rc -> req_rpc_data
2019-08-14 23:59:46 +03:00
Max Romanov
4bef4256c0
Java: implementing multipart message support.
...
This closes #265 issue on GitHub.
2019-08-14 15:24:41 +03:00
Valentin Bartenev
274260bd28
Router: allowed empty configurations.
...
Now it's possible to delete "listeners" and "applications" objects.
This closes #187 issue on GitHub.
2019-08-06 17:13:13 +03:00
Valentin Bartenev
7fd9444728
Node.js: returning "this" from writeHead() to allow chaining.
...
In Node.js version 11.10.0 and later, the writeHead() function returns "this".
2019-08-06 16:24:11 +03:00
Igor Sysoev
c7210eaa5a
nxt_h1proto_t definition was moved to h1proto implementation.
2019-08-06 15:29:40 +03:00
Igor Sysoev
17bb22a4e4
Refactored HTTP protocol callback table.
2019-08-06 15:29:39 +03:00
Axel Duch
7785c96c1a
Added routing based on request scheme.
...
Scheme matches exact string “http” or “https”.
2019-07-24 13:47:35 +03:00
Valentin Bartenev
242dc363ce
Perl: propagated compile options from perl build.
...
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-17 21:17:30 +03:00
Max Romanov
dcf46a63eb
Exiting application process in case of pre_init stage error.
2019-07-17 16:57:43 +03:00
Max Romanov
aab235c4dc
Java: fixing realpath error message.
2019-07-17 10:52:48 +03:00
Valentin Bartenev
ef89815f03
PHP: fixed script filename setting, broken after 2a71417d297f.
2019-07-16 17:58:48 +03:00
Max Romanov
cc578b2e63
PHP: added PATH_INFO support.
2019-07-05 21:10:01 +03:00
Valentin Bartenev
924165c90b
PHP: improved response status code handling.
...
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-07-05 18:42:30 +03:00
Max Romanov
b1ee073707
PHP: removing excessive debug message.
2019-06-28 12:20:00 +03:00
Max Romanov
ce17fef73d
Fixed application crash handling in router.
...
Before this fix, request in router may hang until timeout expired if
application crashed during request processing.
2019-06-28 12:19:54 +03:00
Max Romanov
9ea4be7e4e
Fixing allocation alignment for port fragments.
...
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-28 12:19:48 +03:00
Max Romanov
3ceec5f4d2
Java: adding Content-Type response header for static files.
2019-06-28 12:19:40 +03:00
Igor Sysoev
a2c1907fda
Decreased level of some shutdown() and send() errors.
2019-06-18 18:01:03 +03:00
Max Romanov
24400b3a5d
Node.js: packaging new nxt_napi.h.
...
File nxt_napi.h (introduced in 53533ba0097c) added into packaged files
list.
This closes #261 issue on GitHub.
2019-06-17 18:16:06 +03:00
Igor Sysoev
1f8c395fc0
Cookie-based routing should be case-sensitive.
2019-06-10 18:47:35 +03:00
Igor Sysoev
6a775f58af
Added routing based on cookies.
2019-05-30 15:33:51 +03:00
Igor Sysoev
5fb3daa5af
Added routing based on arguments.
2019-05-30 15:33:51 +03:00
Igor Sysoev
16273cf1c6
Handling routing errors.
2019-05-30 15:33:51 +03:00
Igor Sysoev
0ba7cfce75
Added routing based on header fields.
2019-05-30 15:33:51 +03:00
Igor Sysoev
3aaebe4169
Fixed segfault with empty routes array.
2019-05-30 15:33:51 +03:00
Igor Sysoev
f2aa190f60
Fixed segfault with empty rule array.
2019-05-30 15:33:51 +03:00
Max Romanov
8241539734
Java: fixing typo in context initialization.
2019-05-30 15:02:09 +03:00
Max Romanov
6a2928b4bf
Java: fixing request scheme using 'tls' flag.
2019-05-30 15:02:07 +03:00
Valentin Bartenev
6a6bc63c48
Configuration: support for POST operations on arrays.
...
It allows to add an array element without specifying the index.
2019-04-24 20:31:00 +03:00
Valentin Bartenev
4d35a7bbac
Configuration: support for manipulations of array elements.
...
Now PUT and DELETE operations also work on elements.
This closes #242 issue on GitHub.
2019-04-24 20:31:00 +03:00
Valentin Bartenev
30768b7b3c
Refactored nxt_conf_op_compile().
...
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-24 20:31:00 +03:00
Valentin Bartenev
1467d34d73
Removed unused field from nxt_conf_op_s.
2019-04-24 20:31:00 +03:00
Max Romanov
c6e96647a1
Node.js: using low-case header names as key in req.headers.
...
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-17 19:15:41 +03:00
Valentin Bartenev
5e1cf14565
Controller: rejecting double wildcards.
2019-04-12 17:44:55 +03:00
Valentin Bartenev
f0cc14d394
Simplified cycles in nxt_http_route_rule().
2019-04-12 17:44:54 +03:00
Igor Sysoev
8339b15158
Added support for wildcards in the middle of match patterns.
2019-04-10 13:47:34 +03:00
Valentin Bartenev
7b839bf5da
Backed out changeset f74d4dd9c3db.
...
This closes #240 issue on GitHub.
2019-04-03 18:40:47 +03:00
Max Romanov
6241099db2
Removing unused variables and assignments.
...
Warnings introduced in 53533ba0097c commit.
2019-04-02 16:07:49 +03:00
Max Romanov
56101e47ee
Adding 'connection' to request as an alias to 'socket'.
...
Adding actual 'remoteAddress' and 'localAddress' into socket object.
This closes #232 issue on GitHub.
2019-04-01 16:40:49 +03:00
Max Romanov
8557cb3660
Introducing close event to notify about server stop.
...
This closes #236 on GitHub.
Thanks to 0xcdcdcdcd.
2019-04-01 16:40:40 +03:00
Max Romanov
aca42de18a
Adding syntax sugar.
...
With exceptions and overloads.
2019-04-01 16:40:33 +03:00
Max Romanov
b96e5fd848
Turning off port read event state after main process fork.
...
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-25 14:49:28 +03:00
Max Romanov
6c694d4b47
Ignoring EPERM error when changing application process uid/gid.
...
This closes #228 issue on GitHub.
2019-03-22 15:32:58 +03:00
Max Romanov
1b7514dca3
Destroying pool in case of error.
...
This closes #233 issue on GitHub.
Thanks to 洪志道 (Hong Zhi Dao).
2019-03-22 15:32:40 +03:00
Max Romanov
687f83fbd0
Style fixing.
...
This closes #233 issue on GitHub.
Thanks to 洪志道 (Hong Zhi Dao).
2019-03-22 15:32:35 +03:00
Max Romanov
452ce0789e
Adjusting request schema value according to connection tls state.
...
This closes #223 issue on GitHub.
2019-03-21 13:55:57 +03:00
Max Romanov
39e147a858
Removing unused local variable.
2019-03-18 19:55:39 +03:00