summaryrefslogtreecommitdiffhomepage
AgeCommit message (Collapse)AuthorFilesLines
2019-02-28Tests: fixed PHP "disable_functions" and "disable_classes" tests.Andrey Zelenkov4-69/+60
2019-02-28Made QUERY_STRING mandatory.Valentin Bartenev5-18/+7
According to CGI/1.1 RFC 3875: The server MUST set this variable; if the Script-URI does not include a query component, the QUERY_STRING MUST be defined as an empty string (""). Python's PEP 333(3) allows omitting it in WSGI interface; PHP docs force no requirements; PSGI and Rack specifications require it even if empty. When nginx proxies requests over FastCGI, it always provides QUERY_STRING. and some PHP apps have been observed to fail if it is missing (see issue #201 on GitHub). A drawback of this change (besides a small overhead) is that there will be no easy way to tell a missing query string from an empty one (i.e. requests with or without the "?" character); yet, it's negligible compared to the possible benefits of wider application compatibility. This closes #226 issue on GitHub.
2019-02-28Packages: added unit-jsc (Java Servlet Container) family.Andrei Belov24-14/+2408
2019-02-28Fixed timer and event race condition.Igor Sysoev5-8/+17
When idle timeout occurs at the same time as a request comes in, the timer handler closes connection while the read event triggers request processing, and this eventually leads to segmentation fault.
2019-02-28Preserving message 'share' field when pushing to queue.Max Romanov1-0/+1
As far as I understand, this field is important to control the number of buffers send in a single write attempt. Furthermore, having uninitialized field is always bad. This closes #204 issue on GitHub. Thanks to 洪志道 (Hong Zhi Dao).
2019-02-28Introducing Java Servlet Container beta.Max Romanov95-1/+13360
2019-02-28Various libunit fixes.Max Romanov1-8/+26
This patch contains various logging improvements and bugfixes found during Java module development.
2019-02-28Removing app data debug message.Max Romanov1-4/+0
This message produces too many noise in log and complicates analysis.
2019-02-28Reusing fragmented message buffers.Max Romanov1-1/+9
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-27Tests: "Host" header tests.Andrey Zelenkov2-0/+154
2019-02-27Tests: routing.Andrey Zelenkov1-0/+458
2019-02-27Tests: read_timeout option introduced.Andrey Zelenkov3-13/+16
Also, increased default select() timeout from 1s to 5s.
2019-02-27Tests: added "Host" and "Connetion" headers where necessary.Andrey Zelenkov10-99/+143
Also minor header organizing.
2019-02-27Perl: added processing for IO:Handle-like object.Alexander Borisov2-4/+109
The application can return the body as an IO:Handle-like object without file descriptor.
2019-02-27Added trailing zero to version string.Valentin Bartenev3-3/+3
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-27Fixed processing of SERVER_NAME after 77aad2c142a0.Valentin Bartenev11-167/+54
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-27Controller: added "routes" configuration.Valentin Bartenev1-0/+186
2019-02-27Controller: added "pass" configuration option.Valentin Bartenev1-0/+62
2019-02-27Initial routing implementation.Igor Sysoev6-40/+979
2019-02-26Introduced nxt_memcpy_upcase().Igor Sysoev2-0/+15
2019-02-26Introduced nxt_conf_array_qsort().Igor Sysoev2-0/+18
2019-02-26Introduced nxt_conf_array_elements_count().Igor Sysoev2-0/+8
2019-02-26Keepalive mode is disabled on HTTP header parsing errors.Igor Sysoev1-0/+2
2019-02-26Fixed violation of the strict aliasing rules in 5d0edd35c4ce.Valentin Bartenev3-14/+6
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-26Packages: yet another fix added, missed in a7af31b69692.Andrei Belov1-1/+1
2019-02-26Packages: fixed packages build, broken in 00d8049418cf.Andrei Belov3-1/+5
2019-02-25RPC error message size fixed.Max Romanov1-1/+1
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-25Disabled useless code in nxt_router_listen_socket_error().Valentin Bartenev1-4/+8
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-23Removed surplus check for NUL in nxt_http_validate_host().Valentin Bartenev1-1/+0
Such header fields are already rejected by HTTP parser.
2019-02-22Improvement and unification of version processing in build scripts.Alexander Borisov13-43/+43
This also eliminates expressions that incompatible with BSD make, thus fixing installation of Node.js module on FreeBSD (broken by dace60fc4926).
2019-02-22TLS certificates should be freed per listener.Igor Sysoev1-6/+9
This fixes memory leak if configuration uses more than one TLS cerificate.
2019-02-21Initializing incoming buffer queue in a proper place.Sergey Kandaurov1-2/+2
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-20Tests: one more alert skipped in test_json_application_many.Andrey Zelenkov1-0/+1
2019-02-20Tests: skip sendmsg()/recvmsg() alerts for all tests.Andrey Zelenkov4-11/+2
Currently, these alerts may appear in the log when any application exits.
2019-02-20Tests: removed test_http_header_transfer_encoding_chunked.Andrey Zelenkov1-17/+0
2019-02-20Tests: JSON array allowed.Andrey Zelenkov1-1/+1
2019-02-20Tests: fixed ports range.Andrey Zelenkov1-2/+2
2019-02-19Validation and normalization of request host.Valentin Bartenev3-11/+112
2019-02-18Ignoring HUP signal in main process.Igor Sysoev1-0/+11
2019-02-18Fixed memory leak on response body sending failure.Igor Sysoev3-3/+4
2019-02-18Rejecting requests with duplicate "Content-Length".Valentin Bartenev2-6/+8
2019-02-14Packages: added "-fno-strict-aliasing" flag on CentOS 6 x86_64.Andrei Belov2-0/+9
Closes #221 on GitHub.
2019-02-14Packages: removed unit-perl on CentOS 6.Andrei Belov1-1/+7
CentOS 6 has Perl version 5.10, which is unsupported by Unit.
2019-02-14Tests: added tests for "Content-Length" header.Andrey Zelenkov1-0/+46
2019-02-14Tests: headers with equal header fields allowed.Andrey Zelenkov1-1/+6
2019-02-14Tests: minor fixes.Andrey Zelenkov2-5/+3
2019-02-11Merged with the 1.7 branch.Valentin Bartenev12-9/+62
2019-02-07Added tag 1.7.1 for changeset 0f04ef991fbcValentin Bartenev1-0/+1
2019-02-07Generated Dockerfiles for Unit 1.7.1.1.7.1Valentin Bartenev9-9/+9
2019-02-07Added version 1.7.1 CHANGES.Valentin Bartenev2-0/+52