Age | Commit message (Collapse) | Author | Files | Lines | |
---|---|---|---|---|---|
2020-10-28 | Preserving the app port write socket. | Max Romanov | 1 | -1/+1 | |
The socket is required for intercontextual communication in multithreaded apps. | |||||
2020-08-20 | Moved isolation related code to "nxt_isolation.c". | Tiago Natel de Moura | 1 | -581/+4 | |
2020-08-11 | Moving file descriptor blocking to libunit. | Max Romanov | 1 | -6/+0 | |
The default libunit behavior relies on blocking the recv() call for port file descriptors, which an application may override if needed. For external applications, port file descriptors were toggled to blocking mode before the exec() call. If the exec() call failed, descriptor remained blocked, so the process hanged while trying to read from it. This patch moves file descriptor mode switch inside libunit. | |||||
2020-08-11 | Libunit refactoring: port management. | Max Romanov | 1 | -1/+13 | |
- Changed the port management callbacks to notifications, which e. g. avoids the need to call the libunit function - Added context and library instance reference counts for a safer resource release - Added the router main port initialization | |||||
2020-07-23 | Fixing main and application port structs file descriptor init. | Max Romanov | 1 | -0/+2 | |
Correct value for non-initialized file descriptor is -1, because most of the checks in libunit compares file descriptor with -1 before performing an action. Using 0 as default value, may cause to close file descriptor #0, this may affect application logic. It is not required to list this patch in changelog because impact is not seen by end users. | |||||
2020-07-22 | Fixing buffer overflow check in discovery. | Max Romanov | 1 | -1/+1 | |
Incorrect check prevents Unit to start without modules. This issue was introduced in 4a3ec07f4b19. | |||||
2020-06-23 | Isolation: fixed build when features aren't detected. | Tiago Natel de Moura | 1 | -93/+110 | |
2020-05-28 | Added "rootfs" feature. | Tiago Natel de Moura | 1 | -38/+443 | |
2020-03-09 | Refactor of process management. | Tiago Natel de Moura | 1 | -19/+344 | |
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. | |||||
2019-10-22 | Fixing process crash in case of module load error. | Max Romanov | 1 | -0/+3 | |
This is related to #330 issue on GitHub. | |||||
2019-07-17 | Exiting application process in case of pre_init stage error. | Max Romanov | 1 | -4/+1 | |
2019-03-06 | Removed unnecessary abstraction layer. | Alexander Borisov | 1 | -28/+0 | |
2019-02-28 | Introducing Java Servlet Container beta. | Max Romanov | 1 | -0/+14 | |
2018-10-09 | Renamed "go" application type to "external". | Valentin Bartenev | 1 | -4/+4 | |
There's nothing specific to Go language. This type of application object can be used to run any external application that utilizes libunit API. | |||||
2018-08-06 | Unit application library. | Max Romanov | 1 | -427/+49 | |
Library now used in all language modules. Old 'nxt_app_*' code removed. See src/test/nxt_unit_app_test.c for usage sample. | |||||
2018-07-12 | Enabled body buffer shared memory segmentation. | Max Romanov | 1 | -23/+22 | |
Changeset #699 fixes shared memory allocation: continous buffer with requested size should be allocated or function failed. For body longer than 10 Mb, this allocation will definitely fails. For body buffer it is not required to send it in a single continous buffer, so, need to request minimum reasonable amount of shared memory and try to extend it, if possible or allocate next buffer. | |||||
2018-06-25 | Introduced nxt_length() macro. | Valentin Bartenev | 1 | -4/+4 | |
2018-05-28 | Configuration of environment variables for application processes. | Valentin Bartenev | 1 | -0/+47 | |
2018-05-21 | Added SERVER_SOFTWARE request meta-variable. | Valentin Bartenev | 1 | -0/+3 | |
2018-04-20 | Fixed segfault when two modules have the same type and version. | Valentin Bartenev | 1 | -1/+1 | |
The bug appeared in 217e48a3b091. This closes #104 issue on GitHub. | |||||
2018-04-17 | Added missing checks if nxt_port_rpc_register_handler() failed. | Valentin Bartenev | 1 | -0/+4 | |
This closes #97 issue on GitHub. Thanks to 洪志道 (Hong Zhi Dao). | |||||
2018-04-05 | Handling error return from application 'run()' function. | Max Romanov | 1 | -1/+7 | |
Server error response generated or connection closed. | |||||
2018-04-04 | Changed version processing for modules. | Alexander Borisov | 1 | -8/+10 | |
2018-03-21 | Added Ruby support. | Alexander Borisov | 1 | -0/+3 | |
2018-03-05 | Reduced number of critical log levels. | Valentin Bartenev | 1 | -10/+5 | |
2018-02-14 | Fixed race condition while discovering modules. | Valentin Bartenev | 1 | -20/+42 | |
Previously, the discovery process might exit before the main process received a list of available modules. | |||||
2018-01-31 | Added Perl support. | Alexander Borisov | 1 | -3/+3 | |
2018-01-24 | Fixed formatting in nxt_sprintf() and logging. | Sergey Kandaurov | 1 | -1/+1 | |
2018-01-24 | Using size_t for the field width type of the "%*s" specifier. | Sergey Kandaurov | 1 | -3/+5 | |
2017-12-28 | Removed duplicate declaration. | Igor Sysoev | 1 | -1/+1 | |
2017-12-28 | HTTP keep-alive connections support. | Igor Sysoev | 1 | -207/+16 | |
2017-12-28 | Changed nxt_mp_retain() and nxt_mp_release() interfaces. | Igor Sysoev | 1 | -1/+1 | |
2017-12-27 | Implementing the ability to cancel request before worker starts processing it. | Max Romanov | 1 | -61/+31 | |
2017-12-27 | Introducing application 'atexit' hook. | Max Romanov | 1 | -1/+12 | |
Finalizing Python interpreter. This closes #65 issue on GitHub. | |||||
2017-12-25 | HTTP parser: reworked header fields handling. | Valentin Bartenev | 1 | -46/+45 | |
2017-12-07 | Fixed protocol version string handling in router. | Valentin Bartenev | 1 | -1/+1 | |
2017-10-18 | Added the debug option to module compatibility vector. | Igor Sysoev | 1 | -1/+1 | |
2017-10-10 | Optimized application type handling. | Valentin Bartenev | 1 | -23/+41 | |
2017-10-05 | Improved applications versions handling. | Valentin Bartenev | 1 | -3/+9 | |
2017-10-04 | Using request mem pool for req<->app link. | Max Romanov | 1 | -1/+1 | |
Request <-> application link structure (nxt_req_app_link_t) used to register the request in application request queue (nxt_app_t.requests) and generate application-specific port message. Now it is allocated from request pool. This pool created for request parsing and used to allocate and store information specific to this request. | |||||
2017-09-16 | Fixed memory leak caused by mempool related to request context. | Valentin Bartenev | 1 | -7/+3 | |
The previous attempt of fixing this in e5a65b58101f hasn't been really successful, because the actual memory leak was caused not by the request parse context itself, but its memory pool. | |||||
2017-09-15 | Fixing memory leak of request parse context. | Max Romanov | 1 | -8/+26 | |
2017-09-06 | Style fixes. | Igor Sysoev | 1 | -8/+7 | |
2017-09-05 | Double connection close attempt fix. | Max Romanov | 1 | -2/+2 | |
2017-09-05 | Introducing working_directory directive for applications. | Max Romanov | 1 | -0/+13 | |
2017-08-31 | Fixed format specifier. | Igor Sysoev | 1 | -1/+1 | |
2017-08-31 | Introduced module compatibility vector. | Igor Sysoev | 1 | -5/+21 | |
2017-08-30 | The discovery process did not quit if no modules were not found. | Igor Sysoev | 1 | -41/+48 | |
2017-08-29 | The master process has been renamed to the main process. | Igor Sysoev | 1 | -2/+2 | |
2017-08-26 | Added configure and command line option --modules. | Igor Sysoev | 1 | -2/+3 | |