Commit Graph

1047 Commits

Author SHA1 Message Date
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
Andrei Belov
3b7f28f23c Packages: fixed control socket path after 7012b4fd5113. 2019-01-24 15:18:19 +03:00
Remi Collet
b78ed44f39 Packages: systemd and other improvements.
See the following links for details:
https://github.com/nginx/unit/pull/212
https://github.com/nginx/unit/issues/213

Closes #155, closes #212, closes #213.
2019-01-24 14:05:58 +03:00
Remi Collet
b1649bce9e Packages: Fedora >= 29 have python 3.7.
Closes #211.
2019-01-24 13:03:25 +03:00
Alexander Borisov
2bc8fb7b43 Node.js: fixed module version on installation from sources. 2019-01-23 17:47:53 +03:00
Igor Sysoev
fd6a6a5514 Fixed processing Unix listening socket failures.
This is related to issue #198 on GitHub.
2019-01-21 18:39:19 +03:00
Alexander Borisov
52c1895cd2 Go: fixed module installation, broken in ed8b1aaefdd1.
Added the nxt_unit_version.h dependency.
This closes #214 issue on GitHub.
2019-01-21 18:13:00 +03:00
Alexander Borisov
2677bd5604 Go: fixed module installation, broken in ed8b1aaefdd1.
Added the nxt_unit_version.h dependency.
This closes #214 issue on GitHub.
2019-01-21 18:13:00 +03:00
Igor Sysoev
627b116c4d Testing correct value. 2019-01-18 16:18:36 +03:00
Igor Sysoev
23a6a8e451 Testing correct value. 2019-01-18 16:18:36 +03:00