Age | Commit message (Collapse) | Author | Files | Lines | |
---|---|---|---|---|---|
2020-05-28 | Moving nxt_stream_ident to shared memory. | Max Romanov | 3 | -3/+31 | |
This aims to avoid stream id clashes after router restart. | |||||
2020-05-28 | Added NULL check for engine->port. | Max Romanov | 1 | -2/+4 | |
This is required to handle REMOVE_PID messages if router engine initialization is incomplete. | |||||
2020-05-28 | Closing unsent file descriptors from port queue. | Max Romanov | 1 | -0/+6 | |
After a process exits, all ports linked to it from other processes should be closed. All unsent file descriptors in port queue, marked as "close after send", should be closed to avoid resource leakage. | |||||
2020-05-20 | Tests: print unit.log in case of errors. | Andrei Zeliankou | 1 | -1/+2 | |
Thanks to hongzhidao. | |||||
2020-05-20 | Static: fixed potential undefined behavior in memcpy(). | Valentin Bartenev | 1 | -1/+1 | |
According to the C standard, pointer arguments passed to memcpy() calls shall still have valid values. NULL is considered as invalid. Found with GCC Static Analyzer. | |||||
2020-05-20 | PHP: building with PHP 8 (development version). | Remi Collet | 2 | -1/+13 | |
2020-05-15 | Fixed global constant declaration (appeared in 9af10e099d09). | Valentin Bartenev | 1 | -1/+1 | |
This fixes building with GCC 10, which is default to -fno-common. See: https://gcc.gnu.org/gcc-10/porting_to.html | |||||
2020-05-15 | Router: removed two unused assignments. | Valentin Bartenev | 2 | -5/+2 | |
This should resolve some static analyzers warnings. | |||||
2020-05-15 | Tests: added tests for "targets" option. | Andrei Zeliankou | 4 | -0/+141 | |
2020-05-15 | Tests: added test for encoding in the "pass" option. | Andrei Zeliankou | 1 | -0/+55 | |
2020-05-15 | Tests: style. | Andrei Zeliankou | 34 | -43/+60 | |
2020-05-15 | Tests: test_proxy_invalid simplified. | Andrei Zeliankou | 1 | -79/+20 | |
2020-05-14 | Tests: decode uri and args. | Axel Duch | 1 | -35/+158 | |
2020-05-14 | Router: decode uri and args. | Axel Duch | 4 | -60/+381 | |
2020-05-14 | PHP: implemented "targets" option. | Valentin Bartenev | 11 | -260/+509 | |
This allows to specify multiple subsequent targets inside PHP applications. For example: { "listeners": { "*:80": { "pass": "routes" } }, "routes": [ { "match": { "uri": "/info" }, "action": { "pass": "applications/my_app/phpinfo" } }, { "match": { "uri": "/hello" }, "action": { "pass": "applications/my_app/hello" } }, { "action": { "pass": "applications/my_app/rest" } } ], "applications": { "my_app": { "type": "php", "targets": { "phpinfo": { "script": "phpinfo.php", "root": "/www/data/admin", }, "hello": { "script": "hello.php", "root": "/www/data/test", }, "rest": { "root": "/www/data/example.com", "index": "index.php" }, } } } } | |||||
2020-05-14 | Configuration: URI encoding in the "pass" option. | Valentin Bartenev | 5 | -66/+123 | |
This is useful to escape "/" in path fragments. For example, in order to reference the application named "foo/bar": { "pass": "applications/foo%2Fbar" } | |||||
2020-05-12 | Tests: added respawn tests. | Andrei Zeliankou | 1 | -0/+95 | |
2020-05-12 | Waiting for router instead of reporting to user on config update. | Max Romanov | 1 | -24/+25 | |
2020-05-12 | Blocking config change when applying the initial router config. | Max Romanov | 1 | -11/+32 | |
2020-05-12 | Version bump. | Valentin Bartenev | 1 | -2/+2 | |
2020-04-24 | Tests: introduced module version specification in prerequisites. | Andrei Zeliankou | 25 | -26/+38 | |
2020-04-23 | Packages: added Ubuntu 20.04 "focal" support. | Andrei Belov | 2 | -1/+13 | |
2020-04-20 | Tests: skips adjusted. | Andrei Zeliankou | 2 | -9/+21 | |
2020-04-16 | Added tag 1.17.0 for changeset 4b13438632bc | Valentin Bartenev | 1 | -0/+1 | |
2020-04-16 | Generated Dockerfiles for Unit 1.17.0.1.17.0 | Valentin Bartenev | 8 | -8/+8 | |
2020-04-16 | Added version 1.17.0 CHANGES. | Valentin Bartenev | 2 | -0/+113 | |
2020-04-16 | Using malloc/free for the http fields hash. | Max Romanov | 9 | -52/+24 | |
This is required due to lack of a graceful shutdown: there is a small gap between the runtime's memory pool release and router process's exit. Thus, a worker thread may start processing a request between these two operations, which may result in an http fields hash access and subsequent crash. To simplify issue reproduction, it makes sense to add a 2 sec sleep before exit() in nxt_runtime_exit(). | |||||
2020-04-15 | Fixed memory leak occurring upon failure to accept a connection. | Igor Sysoev | 2 | -12/+11 | |
2020-04-15 | Fixed crash that occurs when idle connections are closed forcibly. | Igor Sysoev | 3 | -35/+77 | |
2020-04-15 | Disabled epoll error processing when socket events are inactive. | Igor Sysoev | 1 | -0/+7 | |
2020-04-14 | Completing chained shared memory buffers. | Max Romanov | 1 | -3/+14 | |
After 41331471eee7 completion handlers should complete next buffer in chain. Otherwise buffer memory may leak. Thanks to Peter Tkatchenko for reporing the issue and testing fixes. | |||||
2020-04-14 | Tests: added test with rescheduling requests. | Andrei Zeliankou | 1 | -0/+32 | |
2020-04-14 | Tests: minor fixes and style. | Andrei Zeliankou | 16 | -175/+99 | |
2020-04-10 | Resolving a racing condition while adding ports on the app's side. | Max Romanov | 5 | -13/+48 | |
An earlier attempt (ad6265786871) to resolve this condition on the router's side added a new issue: the app could get a request before acquiring a port. | |||||
2020-04-08 | Controller: improved handling of unix domain control socket. | Valentin Bartenev | 5 | -18/+90 | |
One of the ways to detect Unit's startup and subsequent readiness to accept commands relies on waiting for the control socket file to be created. Earlier, it was unreliable due to a race condition between the client's connect() and the daemon's listen() calls after the socket's bind() call. Now, unix domain listening sockets are created with a nxt_listen_socket_create() call as follows: s = socket(); unlink("path/to/socket.tmp") bind(s, "path/to/socket.tmp"); listen(s); rename("path/to/socket.tmp", "path/to/socket"); This eliminates a time-lapse when the socket file is already created but nobody is listening on it yet, which therefore prevents the condition described above. Also, it allows reliably detecting whether the socket is being used or simply wasn't cleaned after the daemon stopped abruptly. A successful connection to the socket file means the daemon has been started; otherwise, the file can be overwritten. | |||||
2020-04-08 | Controller: fixed cleaning up of control socket file in some cases. | Valentin Bartenev | 1 | -6/+20 | |
Previously, the unix domain control socket file might have been left in the file system after a failed nxt_listen_socket_create() call. | |||||
2020-04-08 | Removed unused code related to testing of address binding. | Valentin Bartenev | 7 | -31/+9 | |
2020-04-08 | Controller: eliminated extra control socket's sockaddr copying. | Valentin Bartenev | 1 | -11/+1 | |
2020-04-08 | Node.js: fixing Server.listen() method. | Max Romanov | 1 | -1/+11 | |
This is required for Express framework compatibility. This closes #418 issue on GitHub. | |||||
2020-04-06 | Fixing 'find & add' racing condition in connected ports hash. | Max Romanov | 4 | -32/+29 | |
Missing error log messages added. | |||||
2020-04-03 | Tests: use "return" action in upstream tests. | Andrei Zeliankou | 5 | -98/+101 | |
2020-04-03 | Tests: added notification on "read_timeout" expiration. | Andrei Zeliankou | 2 | -4/+30 | |
2020-04-03 | Tests: minor fixes. | Andrei Zeliankou | 3 | -9/+20 | |
2020-04-01 | Fixed build with Clang 10, broken by 32578e837322. | Valentin Bartenev | 1 | -1/+3 | |
This silences the -Wimplicit-int-float-conversion warning. | |||||
2020-03-30 | Tests: added tests for rational numbers in upstream server weight. | Andrei Zeliankou | 2 | -12/+98 | |
2020-03-30 | Rational number support in upstream server weight. | Igor Sysoev | 2 | -24/+38 | |
2020-03-30 | Configuration: support for rational numbers. | Valentin Bartenev | 8 | -170/+135 | |
2020-03-30 | Fixing application process infinite loop. | Max Romanov | 4 | -23/+33 | |
Main process exiting before app process init may have caused hanging. | |||||
2020-03-30 | Handling change file message in libunit. | Max Romanov | 3 | -2/+11 | |
This is required for proper log file rotation action. | |||||
2020-03-30 | Attributing libunit logging function for arguments validation. | Max Romanov | 4 | -10/+31 | |