summaryrefslogtreecommitdiffhomepage
path: root/src/perl/nxt_perl_psgi.c (follow)
AgeCommit message (Collapse)AuthorFilesLines
2022-04-26Fixed indentation.Alejandro Colomar1-1/+1
Some lines (incorrectly) had an indentation of 3 or 5, or 7 or 9, or 11 or 13, or 15 or 17 spaces instead of 4, 8, 12, or 16. Fix them. Found with: $ find src -type f | xargs grep -n '^ [^ ]'; $ find src -type f | xargs grep -n '^ [^ *]'; $ find src -type f | xargs grep -n '^ [^ ]'; $ find src -type f | xargs grep -n '^ [^ *]'; $ find src -type f | xargs grep -n '^ [^ +]'; $ find src -type f | xargs grep -n '^ [^ *+]'; $ find src -type f | xargs grep -n '^ [^ +]'; $ find src -type f | xargs grep -n '^ [^ *+]';
2021-12-27Perl: creating input and error streams if closed.Max Romanov1-106/+82
Application handler can do anything with a stream object (including close it). Once the stream is closed, Unit creates a new stream. This closes #616 issue on GitHub.
2021-10-28Moving request limit control to libunit.Max Romanov1-7/+1
Introducting application graceful stop. For now only used when application process reach request limit value. This closes #585 issue on GitHub.
2020-11-05Perl: request processing in multiple threads.Max Romanov1-145/+349
This closes #486 issue on GitHub.
2020-06-23Isolation: fixed build when features aren't detected.Tiago Natel de Moura1-4/+0
2020-05-28Added "rootfs" feature.Tiago Natel de Moura1-0/+6
2020-03-09Refactor of process management.Tiago Natel de Moura1-4/+7
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-03-30Attributing libunit logging function for arguments validation.Max Romanov1-1/+1
2019-12-24Adding "limits/shm" configuration validation and parsing.Max Romanov1-0/+1
2019-03-21Adjusting request schema value according to connection tls state.Max Romanov1-1/+4
This closes #223 issue on GitHub.
2019-03-01Perl: added implementation delayed response and streaming body.Alexander Borisov1-16/+176
2019-02-28Made QUERY_STRING mandatory.Valentin Bartenev1-4/+2
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-28Introducing Java Servlet Container beta.Max Romanov1-0/+1
2019-02-27Perl: added processing for IO:Handle-like object.Alexander Borisov1-3/+109
The application can return the body as an IO:Handle-like object without file descriptor.
2019-02-27Fixed processing of SERVER_NAME after 77aad2c142a0.Valentin Bartenev1-23/+7
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.
2018-08-08Perl: use of portable macro instead of an explicit declaration.Alexander Borisov1-2/+2
2018-08-06Unit application library.Max Romanov1-470/+324
Library now used in all language modules. Old 'nxt_app_*' code removed. See src/test/nxt_unit_app_test.c for usage sample.
2018-06-25Introduced nxt_length() macro.Valentin Bartenev1-10/+8
2018-05-21Added SERVER_SOFTWARE request meta-variable.Valentin Bartenev1-0/+3
2018-04-04Changed version processing for modules.Alexander Borisov1-1/+1
2018-03-19Perl: improvements to support PSGI specification.Alexander Borisov1-16/+15
2018-03-05Reduced number of critical log levels.Valentin Bartenev1-12/+7
2018-02-07Style fixes.Andrey Zelenkov1-2/+2
2018-02-06Perl: added more checks for 'body' variableAlexander Borisov1-1/+6
2018-01-31Added Perl support.Alexander Borisov1-0/+1148