Age | Commit message (Collapse) | Author | Files | Lines | |
---|---|---|---|---|---|
2020-06-26 | Tests: fixed opcache detection. | Andrei Zeliankou | 1 | -1/+2 | |
opcache_get_status() returns array, so square brackets should be used to access "opcache_enabled" value. | |||||
2020-06-24 | Tests: added chunked tests. | Andrei Zeliankou | 1 | -0/+249 | |
2020-06-23 | Upstream chunked transfer encoding support. | Igor Sysoev | 7 | -98/+179 | |
2020-06-23 | Decreased level of some socket close() errors. | Igor Sysoev | 2 | -13/+36 | |
2020-06-23 | Isolation: fixed build when features aren't detected. | Tiago Natel de Moura | 5 | -129/+116 | |
2020-06-23 | Python: fixed interpreter path in ./configure. | Tiago Natel de Moura | 1 | -2/+1 | |
2020-06-16 | Packages: added Fedora 32 support. | Andrei Belov | 3 | -1/+79 | |
2020-06-08 | Version bump. | Valentin Bartenev | 1 | -2/+2 | |
2020-05-28 | Adjusted tag 1.18.0 to include 9e14c63773be. | Valentin Bartenev | 1 | -1/+1 | |
2020-05-28 | Packages: fixed java configure script.1.18.0 | Tiago Natel de Moura | 4 | -5/+5 | |
Now the configure script appends /server to --lib-path argument. | |||||
2020-05-28 | Added tag 1.18.0 for changeset a34bc498d976 | Valentin Bartenev | 1 | -0/+1 | |
2020-05-28 | Generated Dockerfiles for Unit 1.18.0. | Valentin Bartenev | 8 | -8/+8 | |
2020-05-28 | Added version 1.18.0 CHANGES. | Valentin Bartenev | 2 | -0/+58 | |
2020-05-28 | Tests: Added rootfs tests. | Tiago Natel de Moura | 12 | -35/+543 | |
2020-05-28 | Added "rootfs" feature. | Tiago Natel de Moura | 27 | -74/+1520 | |
2020-03-09 | Refactor of process management. | Tiago Natel de Moura | 28 | -1331/+1543 | |
The process abstraction has changed to: setup(task, process) start(task, process_data) prefork(task, process, mp) The prefork() occurs in the main process right before fork. The file src/nxt_main_process.c is completely free of process specific logic. The creation of a process now supports a PROCESS_CREATED state. The The setup() function of each process can set its state to either created or ready. If created, a MSG_PROCESS_CREATED is sent to main process, where external setup can be done (required for rootfs under container). The core processes (discovery, controller and router) doesn't need external setup, then they all proceeds to their start() function straight away. In the case of applications, the load of the module happens at the process setup() time and The module's init() function has changed to be the start() of the process. The module API has changed to: setup(task, process, conf) start(task, data) As a direct benefit of the PROCESS_CREATED message, the clone(2) of processes using pid namespaces now doesn't need to create a pipe to make the child block until parent setup uid/gid mappings nor it needs to receive the child pid. | |||||
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. |