Max Romanov
9bacd21405
Protecting context structures with mutex.
...
By design, Unit context is created for the thread which reads messages from
the router. However, Go request handlers are called in a separate goroutine
that may be executed in a different thread. To avoid a racing condition,
access to lists of free structures in the context should be serialized. This
patch should fix random crashes in Go applications under high load.
This is related to #253 and #309 issues on GitHub.
2019-09-18 18:30:58 +03:00
Valentin Bartenev
ca01845d89
Configuration: added ability to modify object members with slashes.
...
Example:
PUT/POST/DELETE /config/listeners/unix:%2Fpath%2Fto%2Fsocket
This follows a49ee872e83d.
2019-09-18 16:03:28 +03:00
Andrey Zelenkov
26fcb46137
Tests: added read_buffer_size option in http().
2019-09-18 00:25:57 +03:00
Andrey Zelenkov
23215c839f
Tests: head() method introduced.
2019-09-17 21:15:15 +03:00
Valentin Bartenev
6352c21a58
HTTP parser: fixed parsing of target after literal space character.
...
In theory, all space characters in request target must be encoded; however,
some clients may violate the specification. For the sake of interoperability,
Unit supports unencoded space characters.
Previously, if there was a space character before the extension or arguments
parts, those parts weren't recognized. Also, quoted symbols and complex
target weren't detected after a space character.
2019-09-17 18:40:21 +03:00
Valentin Bartenev
3b77e402a9
HTTP parser: removed unused "plus_in_target" flag.
2019-09-16 20:17:42 +03:00
Valentin Bartenev
56f4085b9d
HTTP parser: removed unused "offset" field.
...
Thanks to 洪志道 (Hong Zhi Dao).
2019-09-16 20:17:42 +03:00
Valentin Bartenev
2fb7a1bfb9
HTTP parser: removed unused "exten_start" and "args_start" fields.
2019-09-16 20:17:42 +03:00
Valentin Bartenev
64be8717bd
Configuration: added ability to access object members with slashes.
...
Now URI encoding can be used to escape "/" in the request path:
GET /config/listeners/unix:%2Fpath%2Fto%2Fsocket/
2019-09-16 20:17:42 +03:00
Andrey Zelenkov
b5394c3956
Tests: fixed features check.
2019-09-16 17:49:49 +03:00
Andrey Zelenkov
65ca2d7b19
Tests: refactored prerequisites model.
2019-09-14 14:44:35 +03:00
Andrey Zelenkov
962cdb6659
Tests: prepare_env() introduced.
2019-09-16 15:37:32 +03:00
Andrey Zelenkov
13ecbe333a
Tests: style and minor fixes in java.py.
2019-09-16 15:37:32 +03:00
Andrey Zelenkov
a5b9c9241e
Tests: more comments.
2019-09-16 15:37:32 +03:00
Andrey Zelenkov
7152162886
Tests: set default "unsafe" value.
2019-09-16 15:37:32 +03:00
Andrei Belov
6f1f3b48b2
Packages: added explicit library path for Java on RPM based distros.
...
This helps to avoid using excessive strictness in RPATH of Java modules.
2019-09-16 13:28:06 +03:00
Max Romanov
2a6af1d214
Added "extern" to nxt_http_fields_hash_proto to avoid link issues.
2019-09-09 17:39:24 +03:00
Andrey Zelenkov
f10a8a03a1
Tests: Java websockets tests.
2019-09-05 15:30:09 +03:00
Max Romanov
2b8cab1e24
Java: introducing websocket support.
2019-09-05 15:27:32 +03:00
Andrey Zelenkov
3e23afb0d2
Tests: increased read_timeout for websockets tests.
2019-09-03 21:23:32 +03:00
Max Romanov
daadc2e00b
Making request state handler calls more consistent.
2019-09-02 18:27:08 +03:00
Andrey Zelenkov
1cfd329b3d
Tests: fixed recv_bytes() in websockets.py.
2019-09-02 18:03:33 +03:00
Andrey Zelenkov
790b4f8f00
Tests: removed duplicate websocket tests.
2019-09-02 18:03:17 +03:00
Andrey Zelenkov
70e808040d
Tests: prevented writing non-chopped frames to the closed socket.
2019-09-02 14:55:00 +03:00
Andrey Zelenkov
cb36616132
Tests: prevented writing to the closed socket for websocket tests.
2019-08-30 16:59:35 +03:00
Andrey Zelenkov
ccd6c0dc05
Tests: websockets style fixes.
2019-08-30 15:37:44 +03:00
Max Romanov
7053a35a60
Fixed WebSocket implementation that was broken on some systems.
...
The "nxt_http_websocket" request state, defined in "nxt_http_websocket.c",
is used in "nxt_router.c" and must be linked with external symbol declared
in "nxt_router.c".
Due to the missing "extern" keyword, building Unit with some linkers
(notably gold and LLD) caused WebSocket connections to get stuck or even
crash the router process.
2019-08-30 00:07:54 +03:00
Igor Sysoev
e2abfaf381
Adding body handler to nxt_http_request_header_send().
2019-08-26 18:29:00 +03:00
Valentin Bartenev
1298824130
Version bump.
2019-08-26 18:06:03 +03:00
Andrei Belov
9b459d5d26
Added changes for 1.10.0-2 bugfix release.
2019-08-23 12:10:20 +03:00
Max Romanov
5d4426ed65
Installing libunit files for websocket support.
2019-08-23 01:19:57 +03:00
Andrey Zelenkov
c47af243b0
Tests: removed keepalive_interval for websocket tests.
...
Also increased read_timeout in frame_read() for slow hosts.
2019-08-22 21:28:03 +03:00
Valentin Bartenev
bc57d1d076
Added tag 1.10.0 for changeset cdbba3c3e376
2019-08-22 18:56:22 +03:00
Valentin Bartenev
19f59b221d
Generated Dockerfiles for Unit 1.10.0.
2019-08-22 18:43:25 +03:00
Valentin Bartenev
700987c355
Fixed rebuilding of Dockerfiles.
2019-08-22 18:43:21 +03:00
Valentin Bartenev
0a106e3cbc
Added version 1.10.0 CHANGES.
2019-08-22 18:43:02 +03:00
Andrey Zelenkov
72b56388b7
Tests: Node.js websockets tests tuned.
2019-08-22 18:28:23 +03:00
Max Romanov
e291841b33
Node.js: introducing websocket support.
2019-08-20 16:32:05 +03:00
Max Romanov
e501c74ddc
Introducing websocket support in router and libunit.
2019-08-20 16:31:53 +03:00
Andrey Zelenkov
9bbf54e23e
Tests: Node.js websockets.
2019-08-22 15:33:41 +03:00
Andrey Zelenkov
08601bbbf0
Tests: "--unsafe" option introduced.
2019-08-22 15:26:15 +03:00
Andrey Zelenkov
b4c09e2954
Tests: reverted rerun for Java tests in 5e429a7f133c.
...
Each testcase should also recompile to be recompiled.
So backed out for now.
2019-08-21 14:24:23 +03:00
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
Andrey Zelenkov
4d7576d323
Tests: print decoded strings in detailed mode, if possible.
2019-08-14 16:26:47 +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
Andrey Zelenkov
ac316ff7a5
Tests: fixed port reusing to avoid access issues.
2019-08-14 15:53:58 +03:00
Max Romanov
4bef4256c0
Java: implementing multipart message support.
...
This closes #265 issue on GitHub.
2019-08-14 15:24:41 +03:00
Andrey Zelenkov
8904c87c6b
Tests: goftm used for Go applications.
2019-08-14 14:06:28 +03:00