Max Romanov
ec7319d32c
Various libunit fixes.
...
This patch contains various logging improvements and bugfixes found
during Java module development.
2019-02-28 15:52:36 +03:00
Max Romanov
b92dc6036c
Removing app data debug message.
...
This message produces too many noise in log and complicates analysis.
2019-02-28 14:37:39 +03:00
Max Romanov
0c917b4d34
Reusing fragmented message buffers.
...
Fragmented message non-mmap buffer chain not freed nor reused before
this fix.
This closes #206 on GitHub.
Thanks to 洪志道 (Hong Zhi Dao).
2019-02-28 13:39:31 +03:00
Andrey Zelenkov
4b92586530
Tests: "Host" header tests.
2019-02-27 20:41:30 +03:00
Andrey Zelenkov
8488666d60
Tests: routing.
2019-02-27 19:46:27 +03:00
Andrey Zelenkov
bd77c9a4d2
Tests: read_timeout option introduced.
...
Also, increased default select() timeout from 1s to 5s.
2019-02-27 19:43:14 +03:00
Andrey Zelenkov
4de2c8b567
Tests: added "Host" and "Connetion" headers where necessary.
...
Also minor header organizing.
2019-02-27 19:15:02 +03:00
Alexander Borisov
379e4c75fd
Perl: added processing for IO:Handle-like object.
...
The application can return the body as an IO:Handle-like object
without file descriptor.
2019-02-27 17:27:41 +03:00
Valentin Bartenev
5c9fe8c306
Added trailing zero to version string.
...
While it looks nicer without zero 3-rd version number, this should
improve interoperability. Version string can be parsed or used for
sorting. And it is easier to handle and less confusing when there
is constant number of version parts.
Moreover, NPM also expects version format with 3 parts.
So ".0" has already been used in Node.js module version.
2019-02-27 17:25:28 +03:00
Valentin Bartenev
e929d08201
Fixed processing of SERVER_NAME after 77aad2c142a0.
...
Previously, the nxt_router_prepare_msg() function expected server host among
other headers unmodified. It's not true anymore since normalization of the
Host header has been introduced in 77aad2c142a0.
The nxt_unit_split_host() function was removed. It didn't work correctly with
IPv6 literals. Anyway, after 77aad2c142a0 the port splitting is done in router
while Host header processing.
2019-02-27 17:25:07 +03:00
Valentin Bartenev
a881c31abd
Controller: added "routes" configuration.
2019-02-27 16:50:37 +03:00
Valentin Bartenev
c24c0deb19
Controller: added "pass" configuration option.
2019-02-27 16:44:52 +03:00
Igor Sysoev
d4ccaae900
Initial routing implementation.
2019-02-27 16:41:11 +03:00
Igor Sysoev
95c9bba33b
Introduced nxt_memcpy_upcase().
2019-02-26 19:48:44 +03:00
Igor Sysoev
ce650ea0f7
Introduced nxt_conf_array_qsort().
2019-02-26 19:48:41 +03:00
Igor Sysoev
547082171e
Introduced nxt_conf_array_elements_count().
2019-02-26 19:48:38 +03:00
Igor Sysoev
444b9ffea9
Keepalive mode is disabled on HTTP header parsing errors.
2019-02-26 19:12:16 +03:00
Valentin Bartenev
ce6ce15c20
Fixed violation of the strict aliasing rules in 5d0edd35c4ce.
...
In order to reduce number of operations over rb-tree and process them in
batches simultaneously, all the timers changes are temporary stored in array.
While processing of these changes, the same memory is also used for storing
pointers to postpone timers adding.
As the same block of memory has been referenced by two different types of
pointers (nxt_timer_change_t * and nxt_timer_t **), some compilers may reorder
operations with these pointers and produce broken code. See ticket #221 on
GitHub for a particular case.
Now the same "nxt_timer_change_t" structure is used in both cases.
Also, reverted the -fno-strict-aliasing flag, which has been introduced in
ef76227ec159 as a workaround for this issue.
2019-02-26 17:42:20 +03:00
Andrei Belov
aa7478267a
Packages: yet another fix added, missed in a7af31b69692.
2019-02-26 14:53:28 +03:00
Andrei Belov
79e3185f33
Packages: fixed packages build, broken in 00d8049418cf.
2019-02-26 14:39:08 +03:00
Max Romanov
bd1eb7b502
RPC error message size fixed.
...
In case of RPC error, special error message passed to handler.
Field 'size' expected to be 0 in this case because in contains fake
empty buffer.
2019-02-25 18:09:37 +03:00
Valentin Bartenev
d8c0a0dbe2
Disabled useless code in nxt_router_listen_socket_error().
...
It doesn't do anything useful, among creating a JSON message and logging it
to debug log. Besides that it causes segmentation fault if the RPC handler
is triggered with an empty buffer due to exiting of the main process.
2019-02-25 15:10:44 +03:00
Valentin Bartenev
c5563d142d
Removed surplus check for NUL in nxt_http_validate_host().
...
Such header fields are already rejected by HTTP parser.
2019-02-23 14:48:33 +03:00
Alexander Borisov
608e09e9de
Improvement and unification of version processing in build scripts.
...
This also eliminates expressions that incompatible with BSD make, thus fixing
installation of Node.js module on FreeBSD (broken by dace60fc4926).
2019-02-22 16:31:44 +03:00
Igor Sysoev
c96b2baca5
TLS certificates should be freed per listener.
...
This fixes memory leak if configuration uses more than one TLS cerificate.
2019-02-22 17:32:38 +03:00
Sergey Kandaurov
3280b826e3
Initializing incoming buffer queue in a proper place.
...
In case nxt_unit_tracking_read() failed, execution would jump to the error path,
where it could try to release buffers from uninitialized yet incoming_buf queue.
2019-02-21 16:30:59 +03:00
Andrey Zelenkov
499096a55a
Tests: one more alert skipped in test_json_application_many.
2019-02-20 20:46:23 +03:00
Andrey Zelenkov
955050aea3
Tests: skip sendmsg()/recvmsg() alerts for all tests.
...
Currently, these alerts may appear in the log when any application exits.
2019-02-20 20:28:29 +03:00
Andrey Zelenkov
09fb847cc7
Tests: removed test_http_header_transfer_encoding_chunked.
2019-02-20 20:24:05 +03:00
Andrey Zelenkov
b2ca342902
Tests: JSON array allowed.
2019-02-20 20:20:02 +03:00
Andrey Zelenkov
ac10bf8c7b
Tests: fixed ports range.
2019-02-20 20:19:55 +03:00
Valentin Bartenev
2d4697dbbe
Validation and normalization of request host.
2019-02-19 20:25:25 +03:00
Igor Sysoev
acb5b0aad7
Ignoring HUP signal in main process.
2019-02-18 18:34:20 +03:00
Igor Sysoev
bb11e9036f
Fixed memory leak on response body sending failure.
2019-02-18 17:28:55 +03:00
Valentin Bartenev
2a6b54c230
Rejecting requests with duplicate "Content-Length".
2019-02-18 16:51:30 +03:00
Andrei Belov
1ba49d9250
Packages: added "-fno-strict-aliasing" flag on CentOS 6 x86_64.
...
Closes #221 on GitHub.
2019-02-14 17:21:37 +03:00
Andrei Belov
43ad6be2f0
Packages: removed unit-perl on CentOS 6.
...
CentOS 6 has Perl version 5.10, which is unsupported by Unit.
2019-02-14 17:21:36 +03:00
Andrey Zelenkov
ab40732c08
Tests: added tests for "Content-Length" header.
2019-02-14 16:09:58 +03:00
Andrey Zelenkov
0e5aaf60d4
Tests: headers with equal header fields allowed.
2019-02-14 16:09:54 +03:00
Andrey Zelenkov
7ce9f61cb6
Tests: minor fixes.
2019-02-14 16:09:19 +03:00
Valentin Bartenev
0f008918b3
Merged with the 1.7 branch.
2019-02-11 15:42:16 +03:00
Valentin Bartenev
fc2af29bd3
Added tag 1.7.1 for changeset 0f04ef991fbc
2019-02-07 17:48:13 +03:00
Valentin Bartenev
6680fd5b8c
Generated Dockerfiles for Unit 1.7.1.
2019-02-07 17:46:46 +03:00
Valentin Bartenev
9a9277b227
Added version 1.7.1 CHANGES.
2019-02-07 17:46:46 +03:00
Valentin Bartenev
a2cbe890a1
Rejecting requests with invalid "Content-Length".
2019-02-07 17:40:27 +03:00
Valentin Bartenev
83dd67d216
Rejecting requests with invalid "Content-Length".
2019-02-07 17:40:27 +03:00
Andrey Zelenkov
d60fbc6d44
Tests: large configuration tests.
2019-01-28 17:17:23 +03:00
Andrey Zelenkov
7dddfe2143
Tests: added test for reading body from IO::Handle-like object.
2019-01-28 17:16:50 +03:00
Andrey Zelenkov
eced6bc972
Tests: removed blocking mode customization for sockets.
...
This customization was added in 0e12b17e512d and left unused.
Also, set blocking mode by default for all sockets.
2019-01-28 15:11:50 +03:00
Andrei Belov
9e383ecaf2
Packages: disabled debugsource generation on relevant platforms.
...
In particular, this fixes unit-go package building on Fedora >= 29.
2019-01-24 16:47:32 +03:00