History log of /unit/src/perl/ (Results 1 – 25 of 31)
Revision (<<< Hide revision tags) (Show revision tags >>>)Date Author Comments
(<<< Hide modified files)
(Show modified files >>>)
Revision tags: 1.32.1-1, 1.32.0-1, 1.32.0, 1.31.1-1, 1.31.1, 1.31.0-1, 1.31.0, 1.30.0-1, 1.30.0
2372:8578acb9e1c328-Feb-2023 Andrew Clayton

Perl: Fix a crash in the language module.

User @bes-internal reported a Perl module crasher on GitHub.

This was due to a Perl application sending back two responses, for each
response we would call

Perl: Fix a crash in the language module.

User @bes-internal reported a Perl module crasher on GitHub.

This was due to a Perl application sending back two responses, for each
response we would call down into XS_NGINX__Unit__Sandbox_cb(), the first
time pctx->req would point to a valid nxt_unit_request_info_t, the
second time pctx->req would be NULL.

Add an invalid responses check which covers this case.

Closes: <https://github.com/nginx/unit/issues/841>
Reviewed-by: Alejandro Colomar <alx@nginx.com>
Signed-off-by: Andrew Clayton <a.clayton@nginx.com>

show more ...

Revision tags: 1.29.1-1, 1.29.1, 1.29.0-1, 1.29.0
2232:1fb2182a4d0302-Nov-2022 Alejandro Colomar

Removed the unsafe nxt_memchr() wrapper for memchr(3).

The casts are unnecessary, since memchr(3)'s argument is 'const void *'.
It might have been necessary in the times of K&R, where 'void *' didn'

Removed the unsafe nxt_memchr() wrapper for memchr(3).

The casts are unnecessary, since memchr(3)'s argument is 'const void *'.
It might have been necessary in the times of K&R, where 'void *' didn't
exist. Nowadays, it's unnecessary, and _very_ unsafe, since casts can
hide all classes of bugs by silencing most compiler warnings.

The changes from nxt_memchr() to memchr(3) were scripted:

$ find src/ -type f \
| grep '\.[ch]$' \
| xargs sed -i 's/nxt_memchr/memchr/'

Reviewed-by: Andrew Clayton <a.clayton@nginx.com>
Signed-off-by: Alejandro Colomar <alx@nginx.com>

show more ...

2208:26af8eadc94329-Sep-2022 Andrew Clayton

Renamed a couple of members of nxt_unit_request_t.

This is a preparatory patch that renames the 'local' and 'local_length'
members of the nxt_unit_request_t structure to 'local_addr' and
'local_addr

Renamed a couple of members of nxt_unit_request_t.

This is a preparatory patch that renames the 'local' and 'local_length'
members of the nxt_unit_request_t structure to 'local_addr' and
'local_addr_length' in preparation for the adding of 'local_port' and
'local_port_length' members.

Suggested-by: Zhidao HONG <z.hong@f5.com>
Signed-off-by: Andrew Clayton <a.clayton@nginx.com>

show more ...

Revision tags: 1.28.0-1, 1.28.0, 1.27.0-1, 1.27.0
2078:0996dd223cdd18-Dec-2021 Alejandro Colomar

Fixed indentation.

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 g

Fixed indentation.

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 '^ [^ *+]';

show more ...

2060:a1991578c62e27-Dec-2021 Max Romanov

Perl: creating input and error streams if closed.

Application handler can do anything with a stream object (including close it).
Once the stream is closed, Unit creates a new stream.

This closes #6

Perl: creating input and error streams if closed.

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.

show more ...

Revision tags: 1.26.1-1, 1.26.1, 1.26.0-1, 1.26.0
1980:43553aa7211128-Oct-2021 Max Romanov

Moving request limit control to libunit.

Introducting application graceful stop. For now only used when application
process reach request limit value.

This closes #585 issue on GitHub.

Revision tags: 1.25.0-1, 1.25.0, 1.24.0-1, 1.24.0, 1.23.0-1, 1.23.0, 1.22.0-1, 1.22.0, 1.21.0-1, 1.21.0
1689:e0d01647db7605-Nov-2020 Max Romanov

Perl: request processing in multiple threads.

This closes #486 issue on GitHub.

Revision tags: 1.20.0-1, 1.20.0, 1.19.0-1, 1.19.0
1503:c21230ef5a0e22-Jun-2020 Tiago Natel de Moura

Isolation: fixed build when features aren't detected.

Revision tags: 1.18.0-1, 1.18.0
1489:4a3ec07f4b1928-May-2020 Tiago Natel de Moura

Added "rootfs" feature.

1488:6976d36be92609-Mar-2020 Tiago Natel de Moura

Refactor of process management.

The process abstraction has changed to:

setup(task, process)
start(task, process_data)
prefork(task, process, mp)

The prefork() occurs in the main process rig

Refactor of process management.

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.

show more ...

Revision tags: 1.17.0-1, 1.17.0
1436:44ccce64ddf930-Mar-2020 Max Romanov

Attributing libunit logging function for arguments validation.

Revision tags: 1.16.0-1, 1.16.0, 1.15.0-1, 1.15.0, 1.14.0-1, 1.14.0
1320:4e70411b984224-Dec-2019 Max Romanov

Adding "limits/shm" configuration validation and parsing.

Revision tags: 1.13.0-1, 1.13.0, 1.12.0-1, 1.12.0, 1.11.0-2, 1.11.0-1, 1.11.0, 1.10.0-2, 1.10.0-1, 1.10.0
1108:8788f96701d517-Jul-2019 Valentin Bartenev

Perl: propagated compile options from perl build.

Some Perl compile options affects ABI and not using them while compiling
our module resulted in non-working build.

Notably on 32-bit Debian 10, Per

Perl: propagated compile options from perl build.

Some Perl compile options affects ABI and not using them while compiling
our module resulted in non-working build.

Notably on 32-bit Debian 10, Perl is built with -D_FILE_OFFSET_BITS=64
and our module after being compiled without this option caused segmentation
faults in unexpected places.

show more ...

Revision tags: 1.9.0-1, 1.9.0
1011:0c41674ec79c21-Mar-2019 Max Romanov

Adjusting request schema value according to connection tls state.

This closes #223 issue on GitHub.

Revision tags: 1.8.0-1, 1.8.0
986:5658825b513f01-Mar-2019 Alexander Borisov

Perl: added implementation delayed response and streaming body.

981:e9253a35f47a28-Feb-2019 Valentin Bartenev

Made QUERY_STRING mandatory.

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 emp

Made QUERY_STRING mandatory.

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.

show more ...

977:4f9268f27b5728-Feb-2019 Max Romanov

Introducing Java Servlet Container beta.


/unit/auto/modules/conf
/unit/auto/modules/java
/unit/auto/modules/java_get_jar
/unit/src/java/nginx/unit/Context.java
/unit/src/java/nginx/unit/DynamicDispatcherRequest.java
/unit/src/java/nginx/unit/DynamicPathRequest.java
/unit/src/java/nginx/unit/ForwardRequestWrapper.java
/unit/src/java/nginx/unit/HeaderNamesEnumeration.java
/unit/src/java/nginx/unit/HeadersEnumeration.java
/unit/src/java/nginx/unit/IncludeRequestWrapper.java
/unit/src/java/nginx/unit/IncludeResponseWrapper.java
/unit/src/java/nginx/unit/InitParams.java
/unit/src/java/nginx/unit/InputStream.java
/unit/src/java/nginx/unit/JspPropertyGroup.java
/unit/src/java/nginx/unit/OutputStream.java
/unit/src/java/nginx/unit/Request.java
/unit/src/java/nginx/unit/RequestAttrProxy.java
/unit/src/java/nginx/unit/Response.java
/unit/src/java/nginx/unit/Session.java
/unit/src/java/nginx/unit/SessionAttrProxy.java
/unit/src/java/nginx/unit/Taglib.java
/unit/src/java/nginx/unit/UnitSessionCookieConfig.java
/unit/src/java/nxt_jni.c
/unit/src/java/nxt_jni.h
/unit/src/java/nxt_jni_Context.c
/unit/src/java/nxt_jni_Context.h
/unit/src/java/nxt_jni_HeaderNamesEnumeration.c
/unit/src/java/nxt_jni_HeaderNamesEnumeration.h
/unit/src/java/nxt_jni_HeadersEnumeration.c
/unit/src/java/nxt_jni_HeadersEnumeration.h
/unit/src/java/nxt_jni_InputStream.c
/unit/src/java/nxt_jni_InputStream.h
/unit/src/java/nxt_jni_OutputStream.c
/unit/src/java/nxt_jni_OutputStream.h
/unit/src/java/nxt_jni_Request.c
/unit/src/java/nxt_jni_Request.h
/unit/src/java/nxt_jni_Response.c
/unit/src/java/nxt_jni_Response.h
/unit/src/java/nxt_jni_Thread.c
/unit/src/java/nxt_jni_Thread.h
/unit/src/java/nxt_jni_URLClassLoader.c
/unit/src/java/nxt_jni_URLClassLoader.h
/unit/src/nxt_application.c
/unit/src/nxt_application.h
/unit/src/nxt_conf.h
/unit/src/nxt_conf_validation.c
/unit/src/nxt_external.c
/unit/src/nxt_java.c
/unit/src/nxt_main_process.c
/unit/src/nxt_php_sapi.c
/unit/src/nxt_python_wsgi.c
/unit/src/nxt_router.c
nxt_perl_psgi.c
/unit/src/ruby/nxt_ruby.c
/unit/test/java/content_type/app.java
/unit/test/java/cookies/app.java
/unit/test/java/empty/app.java
/unit/test/java/filter/app.java
/unit/test/java/forward/app.java
/unit/test/java/forward/index.html
/unit/test/java/forward/web.xml
/unit/test/java/get_header/app.java
/unit/test/java/get_header_names/app.java
/unit/test/java/get_headers/app.java
/unit/test/java/get_params/app.java
/unit/test/java/header/app.java
/unit/test/java/header_date/app.java
/unit/test/java/header_int/app.java
/unit/test/java/include/app.java
/unit/test/java/include/index.html
/unit/test/java/include/web.xml
/unit/test/java/jsp/index.jsp
/unit/test/java/mirror/app.java
/unit/test/java/path_translation/app.java
/unit/test/java/path_translation/index.html
/unit/test/java/post_params/app.java
/unit/test/java/query_string/app.java
/unit/test/java/request_listeners/app.java
/unit/test/java/session/app.java
/unit/test/java/session_inactive/app.java
/unit/test/java/session_invalidate/app.java
/unit/test/java/session_listeners/app.java
/unit/test/java/session_listeners/web.xml
/unit/test/java/url_pattern/app.java
/unit/test/java/url_pattern/web.xml
/unit/test/java/welcome_files/app.java
/unit/test/java/welcome_files/dir1/index.txt
/unit/test/java/welcome_files/dir2/default.jsp
/unit/test/java/welcome_files/dir2/index.html
/unit/test/java/welcome_files/dir3/index.txt
/unit/test/java/welcome_files/dir4/index.html
/unit/test/java/welcome_files/index.htm
/unit/test/java/welcome_files/web.xml
/unit/test/test_java_application.py
/unit/test/unit.py
969:e5654e4b416927-Feb-2019 Alexander Borisov

Perl: added processing for IO:Handle-like object.

The application can return the body as an IO:Handle-like object
without file descriptor.

967:d693ed6d020927-Feb-2019 Valentin Bartenev

Fixed processing of SERVER_NAME after 77aad2c142a0.

Previously, the nxt_router_prepare_msg() function expected server host among
other headers unmodified. It's not true anymore since normalization

Fixed processing of SERVER_NAME after 77aad2c142a0.

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.

show more ...

Revision tags: 1.7.1-1, 1.7.1, 1.7-1, 1.7, 1.6-1, 1.6, 1.5-1, 1.5, 1.4-2, 1.4
780:0de745fae82c20-Sep-2018 Sergey Kandaurov

Fixed building perl on Alpine Linux.

_GNU_SOURCE is required there to expose off64_t and other types.

749:9290ae53e8bf08-Aug-2018 Alexander Borisov

Perl: use of portable macro instead of an explicit declaration.

743:e0f0cd7d244a06-Aug-2018 Max Romanov

Unit application library.

Library now used in all language modules.
Old 'nxt_app_*' code removed.

See src/test/nxt_unit_app_test.c for usage sample.

Revision tags: 1.3
703:2d536dde84d225-Jun-2018 Valentin Bartenev

Introduced nxt_length() macro.

Revision tags: 1.2
673:9fa79c719a1721-May-2018 Valentin Bartenev

Added SERVER_SOFTWARE request meta-variable.

Revision tags: 1.1, 1.0
612:217e48a3b09104-Apr-2018 Alexander Borisov

Changed version processing for modules.

12