Home
last modified time | relevance | path

Searched hist:13 (Results 1 – 25 of 451) sorted by last modified time

12345678910>>...19

/unit/pkg/docker/
H A DDockerfile.minimaldiff 2766:e1697591d345 Tue Mar 26 13:57:00 UTC 2024 oxpa <iippolitov@gmail.com> Merge tag '1.32.1' into packaging

Unit 1.32.1 release.
diff 2200:16e01c5fead4 Tue Sep 13 09:17:00 UTC 2022 Konstantin Pavlov <thresh@nginx.com> Merged with the default branch.
diff 1892:847c88d10f26 Thu May 27 13:07:00 UTC 2021 Valentin Bartenev <vbart@nginx.com> Generated Dockerfiles for Unit 1.24.0.
diff 1573:79f364e9aa90 Thu Aug 13 16:28:00 UTC 2020 Andrei Belov <defan@nginx.com> Merged with the default branch.
diff 1571:86cdf66f8274 Thu Aug 13 16:22:00 UTC 2020 Valentin Bartenev <vbart@nginx.com> Generated Dockerfiles for Unit 1.19.0.
diff 1494:1a138dda162b Thu May 28 15:13:00 UTC 2020 Andrei Belov <defan@nginx.com> Merged with the default branch.
diff 1405:8bab088952dd Thu Mar 12 15:13:00 UTC 2020 Valentin Bartenev <vbart@nginx.com> Generated Dockerfiles for Unit 1.16.0.
diff 847:d411e7fdee9e Thu Nov 15 13:05:00 UTC 2018 Valentin Bartenev <vbart@nginx.com> Generated Dockerfiles for Unit 1.6.
diff 728:b3cf22b8a17e Fri Jul 13 11:45:00 UTC 2018 Valentin Bartenev <vbart@nginx.com> Generated Dockerfiles for Unit 1.3.
H A DDockerfile.jsc11diff 2766:e1697591d345 Tue Mar 26 13:57:00 UTC 2024 oxpa <iippolitov@gmail.com> Merge tag '1.32.1' into packaging

Unit 1.32.1 release.
diff 2193:15275ad20e61 Fri Sep 09 13:45:00 UTC 2022 Konstantin Pavlov <thresh@nginx.com> Regenerated Dockerfiles.
diff 1892:847c88d10f26 Thu May 27 13:07:00 UTC 2021 Valentin Bartenev <vbart@nginx.com> Generated Dockerfiles for Unit 1.24.0.
H A DDockerfile.perl5.36diff 2766:e1697591d345 Tue Mar 26 13:57:00 UTC 2024 oxpa <iippolitov@gmail.com> Merge tag '1.32.1' into packaging

Unit 1.32.1 release.
2193:15275ad20e61 Fri Sep 09 13:45:00 UTC 2022 Konstantin Pavlov <thresh@nginx.com> Regenerated Dockerfiles.
H A DDockerfile.python3.11diff 2766:e1697591d345 Tue Mar 26 13:57:00 UTC 2024 oxpa <iippolitov@gmail.com> Merge tag '1.32.1' into packaging

Unit 1.32.1 release.
2269:b91e6c4124a5 Tue Dec 13 19:50:00 UTC 2022 Konstantin Pavlov <thresh@nginx.com> Regenerated Dockerfiles.
H A DMakefilediff 2200:16e01c5fead4 Tue Sep 13 09:17:00 UTC 2022 Konstantin Pavlov <thresh@nginx.com> Merged with the default branch.
diff 2064:ab4c66f3bfe0 Thu Jan 13 08:35:00 UTC 2022 Konstantin Pavlov <thresh@nginx.com> Docker: bumped Python image version.
diff 2063:f05ba33bcd79 Thu Jan 13 08:35:00 UTC 2022 Konstantin Pavlov <thresh@nginx.com> Docker: bumped Python image version.
diff 1786:20d0c8553094 Tue Feb 02 13:46:00 UTC 2021 Konstantin Pavlov <thresh@nginx.com> Docker: reverted 44154b830401.

Automatic synchronisation is now set up, so manual pushes to AWS ECR are
discouraged.
diff 1783:ddf5f6a322c4 Wed Jan 13 19:33:00 UTC 2021 Konstantin Pavlov <thresh@videolan.org> Docker: based docker images off official languages ones.
Language versions are bumped to:
- python 3.9
- ruby 2.7
- go 1.15
- node 15
- perl 5.32

Removed images:
- python 2.7 due to EOL
- full/latest due to incompatibility with the new scheme
diff 1764:46da19f4079f Thu Dec 24 13:17:00 UTC 2020 Andrei Belov <defan@nginx.com> Packages: fixed an ability to override package version.

This was broken since 00d8049418cf.
diff 1410:e4041da88e22 Fri Mar 13 14:35:00 UTC 2020 Konstantin Pavlov <thresh@nginx.com> Added a target to export docker images as tarballs
diff 953:00d8049418cf Fri Feb 22 13:31:00 UTC 2019 Alexander Borisov <alexander.borisov@nginx.com> Improvement and unification of version processing in build scripts.

This also eliminates expressions that incompatible with BSD make, thus fixing
installation of Node.js module on FreeBSD (broken by dace60fc4926).
/unit/
H A Dversiondiff 2588:a7cd214faa6e Thu Oct 26 13:26:00 UTC 2023 Andrei Zeliankou <zelenkov@nginx.com> Version bump.
diff 2580:13e1309e1cde Thu Oct 19 10:41:00 UTC 2023 Andrei Zeliankou <zelenkov@nginx.com> Prepearing for 1.31.1 release.
diff 2553:f59478384175 Mon Sep 04 13:06:00 UTC 2023 Andrei Zeliankou <zelenkov@nginx.com> Version file bump.

Forgotten in f717dc15b47e.
diff 2334:2d8a18fde53b Mon Feb 27 19:13:00 UTC 2023 Andrei Zeliankou <zelenkov@nginx.com> Version bump.
diff 1727:1c0648dc97c1 Tue Nov 24 13:40:00 UTC 2020 Valentin Bartenev <vbart@nginx.com> Version bump.
diff 1500:29b6a0b4952f Mon Jun 08 13:09:00 UTC 2020 Valentin Bartenev <vbart@nginx.com> Version bump.
diff 1362:a15179da7e86 Wed Feb 19 16:13:00 UTC 2020 Valentin Bartenev <vbart@nginx.com> Version bump.
diff 1336:cc80a919383a Mon Jan 27 13:52:00 UTC 2020 Valentin Bartenev <vbart@nginx.com> Version bump.
diff 1291:dc702ea732ad Fri Nov 22 13:39:00 UTC 2019 Sergey Kandaurov <pluknet@nginx.com> Version bump.
953:00d8049418cf Fri Feb 22 13:31:00 UTC 2019 Alexander Borisov <alexander.borisov@nginx.com> Improvement and unification of version processing in build scripts.

This also eliminates expressions that incompatible with BSD make, thus fixing
installation of Node.js module on FreeBSD (broken by dace60fc4926).
H A DCHANGESdiff 2197:a9ac98dad105 Tue Sep 13 08:27:00 UTC 2022 Andrei Zeliankou <zelenkov@nginx.com> Added version 1.28.0 CHANGES.
diff 1891:5ae5e6619af9 Thu May 27 13:06:00 UTC 2021 Valentin Bartenev <vbart@nginx.com> Added version 1.24.0 CHANGES.
diff 1570:41371bb77803 Thu Aug 13 16:22:00 UTC 2020 Valentin Bartenev <vbart@nginx.com> Added version 1.19.0 CHANGES.
diff 1404:17772ad6d9b9 Thu Mar 12 15:13:00 UTC 2020 Valentin Bartenev <vbart@nginx.com> Added version 1.16.0 CHANGES.
diff 1222:8ffcee3c43dd Thu Oct 03 13:30:00 UTC 2019 Valentin Bartenev <vbart@nginx.com> Added version 1.12.0 CHANGES.
diff 727:75b8c59e7d95 Fri Jul 13 11:45:00 UTC 2018 Valentin Bartenev <vbart@nginx.com> Added version 1.3 CHANGES.
diff 689:5a4e29f628f8 Thu Jun 07 13:43:00 UTC 2018 Valentin Bartenev <vbart@nginx.com> Added version 1.2 CHANGES.
diff 663:8428faa304ce Thu Apr 26 13:47:00 UTC 2018 Valentin Bartenev <vbart@nginx.com> Improved wording in CHANGES.
diff 432:ab13db235c19 Thu Dec 28 13:01:00 UTC 2017 Igor Sysoev <igor@sysoev.ru> Added version 0.3 CHANGES.
/unit/docs/
H A Dunit-openapi.yamldiff 2580:13e1309e1cde Thu Oct 19 10:41:00 UTC 2023 Andrei Zeliankou <zelenkov@nginx.com> Prepearing for 1.31.1 release.
H A Dchanges.xmldiff 2766:e1697591d345 Tue Mar 26 13:57:00 UTC 2024 oxpa <iippolitov@gmail.com> Merge tag '1.32.1' into packaging

Unit 1.32.1 release.
diff 2762:4c50cc739e94 Fri Mar 15 15:13:00 UTC 2024 Andrei Zeliankou <zelenkov@nginx.com> Edited changes.xml for the 1.32.1 release
diff 2588:a7cd214faa6e Thu Oct 26 13:26:00 UTC 2023 Andrei Zeliankou <zelenkov@nginx.com> Version bump.
diff 2580:13e1309e1cde Thu Oct 19 10:41:00 UTC 2023 Andrei Zeliankou <zelenkov@nginx.com> Prepearing for 1.31.1 release.
diff 2452:751880f06069 Wed May 03 23:13:00 UTC 2023 Konstantin Pavlov <thresh@nginx.com> Packages: added Ubuntu 23.04 "lunar" support.
diff 2359:b9cacd1ac37d Tue Feb 28 13:09:00 UTC 2023 Andrei Zeliankou <zelenkov@nginx.com> Added missing fixes in changes.xml.
diff 2358:9dce85e82513 Tue Feb 28 13:42:00 UTC 2023 Andrei Zeliankou <zelenkov@nginx.com> Added missing fixes in changes.xml.
diff 2334:2d8a18fde53b Mon Feb 27 19:13:00 UTC 2023 Andrei Zeliankou <zelenkov@nginx.com> Version bump.
diff 2255:05df9ea66ac2 Wed Nov 16 13:05:00 UTC 2022 Konstantin Pavlov <thresh@nginx.com> Packages: added Ubuntu 22.10 "kinetic" support.
diff 2251:6e5a9550ead3 Thu Nov 17 21:56:00 UTC 2022 Andrew Clayton <a.clayton@nginx.com> Python: Added support for Python 3.11.

Python 3.8 added a new Python initialisation configuration API[0].

Python 3.11 marked the old API as deprecated resulting in the following
compiler warnings which we treat as errors, failing the build

src/python/nxt_python.c: In function ‘nxt_python_start’:
src/python/nxt_python.c:130:13: error: ‘Py_SetProgramName’ is deprecated [-Werror=deprecated-declarations]
130 | Py_SetProgramName(nxt_py_home);
| ^~~~~~~~~~~~~~~~~
In file included from /opt/python-3.11/include/python3.11/Python.h:94,
from src/python/nxt_python.c:7:
/opt/python-3.11/include/python3.11/pylifecycle.h:37:38: note: declared here
37 | Py_DEPRECATED(3.11) PyAPI_FUNC(void) Py_SetProgramName(const wchar_t *);
| ^~~~~~~~~~~~~~~~~
src/python/nxt_python.c:134:13: error: ‘Py_SetPythonHome’ is deprecated [-Werror=deprecated-declarations]
134 | Py_SetPythonHome(nxt_py_home);
| ^~~~~~~~~~~~~~~~
/opt/python-3.11/include/python3.11/pylifecycle.h:40:38: note: declared here
40 | Py_DEPRECATED(3.11) PyAPI_FUNC(void) Py_SetPythonHome(const wchar_t *);
| ^~~~~~~~~~~~~~~~
cc1: all warnings being treated as errors

We actually have a few config scenarios: Python < 3, Python >= 3.0 < 3.8
and for Python 3 we have two configs where we select one based on
virtual environment setup.

Factor out the Python 3 config initialisation into its own function. We
actually create two functions, one for Python 3.8+ and one for older
Python 3. We pick the right function to use at build time.

The new API also has error checking (where the old API doesn't) which we
handle.

[0]: https://peps.python.org/pep-0587/

Closes: <https://github.com/nginx/unit/issues/710>
[ Andrew: Expanded upon patch from @sandeep-gh ]
Signed-off-by: Andrew Clayton <a.clayton@nginx.com>
diff 2251:6e5a9550ead3 Thu Nov 17 21:56:00 UTC 2022 Andrew Clayton <a.clayton@nginx.com> Python: Added support for Python 3.11.

Python 3.8 added a new Python initialisation configuration API[0].

Python 3.11 marked the old API as deprecated resulting in the following
compiler warnings which we treat as errors, failing the build

src/python/nxt_python.c: In function ‘nxt_python_start’:
src/python/nxt_python.c:130:13: error: ‘Py_SetProgramName’ is deprecated [-Werror=deprecated-declarations]
130 | Py_SetProgramName(nxt_py_home);
| ^~~~~~~~~~~~~~~~~
In file included from /opt/python-3.11/include/python3.11/Python.h:94,
from src/python/nxt_python.c:7:
/opt/python-3.11/include/python3.11/pylifecycle.h:37:38: note: declared here
37 | Py_DEPRECATED(3.11) PyAPI_FUNC(void) Py_SetProgramName(const wchar_t *);
| ^~~~~~~~~~~~~~~~~
src/python/nxt_python.c:134:13: error: ‘Py_SetPythonHome’ is deprecated [-Werror=deprecated-declarations]
134 | Py_SetPythonHome(nxt_py_home);
| ^~~~~~~~~~~~~~~~
/opt/python-3.11/include/python3.11/pylifecycle.h:40:38: note: declared here
40 | Py_DEPRECATED(3.11) PyAPI_FUNC(void) Py_SetPythonHome(const wchar_t *);
| ^~~~~~~~~~~~~~~~
cc1: all warnings being treated as errors

We actually have a few config scenarios: Python < 3, Python >= 3.0 < 3.8
and for Python 3 we have two configs where we select one based on
virtual environment setup.

Factor out the Python 3 config initialisation into its own function. We
actually create two functions, one for Python 3.8+ and one for older
Python 3. We pick the right function to use at build time.

The new API also has error checking (where the old API doesn't) which we
handle.

[0]: https://peps.python.org/pep-0587/

Closes: <https://github.com/nginx/unit/issues/710>
[ Andrew: Expanded upon patch from @sandeep-gh ]
Signed-off-by: Andrew Clayton <a.clayton@nginx.com>
/unit/test/
H A Dtest_asgi_application.pydiff 2488:55440e02a873 Mon Jun 12 13:16:00 UTC 2023 Andrei Zeliankou <zelenkov@nginx.com> Tests: prerequisites checking reworked.

Prerequisites check moved to the module level to simplify class structure.
Discovery and prerequisites checks functions moved to the separate files.
Introduced "require" fixture to provide per-test requirements check.
diff 2477:4633c7db7fb5 Thu May 25 13:26:00 UTC 2023 Andrei Zeliankou <zelenkov@nginx.com> Tests: removed unused variables.
diff 1848:4bd548074e2c Mon Apr 05 13:03:00 UTC 2021 Andrei Zeliankou <zelenkov@nginx.com> Tests: style.
diff 1771:94cf6c5fafbd Wed Jan 13 06:22:00 UTC 2021 Andrei Zeliankou <zelenkov@nginx.com> Tests: style.
diff 1692:d9af486b8a38 Fri Nov 06 13:45:00 UTC 2020 Max Romanov <max.romanov@nginx.com> Tests: fixing racing condition in ASGI threads test.

ASGI threads read all the requests from the queue before start processing it.
This why test need to wait a little to let the ASGI thread start request
processing and block. In virtual environment any thread or process may
be delayed and only method to avoid racing is a reasonable sleep increase.
H A Dtest_ruby_hooks.pydiff 2488:55440e02a873 Mon Jun 12 13:16:00 UTC 2023 Andrei Zeliankou <zelenkov@nginx.com> Tests: prerequisites checking reworked.

Prerequisites check moved to the module level to simplify class structure.
Discovery and prerequisites checks functions moved to the separate files.
Introduced "require" fixture to provide per-test requirements check.
1912:942e252e3f4c Fri Jul 02 13:00:00 UTC 2021 Oisin Canty <o.canty@f5.com> Tests: Ruby hooks.
H A Dtest_reconfigure_tls.pydiff 2488:55440e02a873 Mon Jun 12 13:16:00 UTC 2023 Andrei Zeliankou <zelenkov@nginx.com> Tests: prerequisites checking reworked.

Prerequisites check moved to the module level to simplify class structure.
Discovery and prerequisites checks functions moved to the separate files.
Introduced "require" fixture to provide per-test requirements check.
/unit/test/unit/check/
H A Ddiscover_available.py2488:55440e02a873 Mon Jun 12 13:16:00 UTC 2023 Andrei Zeliankou <zelenkov@nginx.com> Tests: prerequisites checking reworked.

Prerequisites check moved to the module level to simplify class structure.
Discovery and prerequisites checks functions moved to the separate files.
Introduced "require" fixture to provide per-test requirements check.
/unit/test/unit/
H A Doption.pydiff 2488:55440e02a873 Mon Jun 12 13:16:00 UTC 2023 Andrei Zeliankou <zelenkov@nginx.com> Tests: prerequisites checking reworked.

Prerequisites check moved to the module level to simplify class structure.
Discovery and prerequisites checks functions moved to the separate files.
Introduced "require" fixture to provide per-test requirements check.
diff 1848:4bd548074e2c Mon Apr 05 13:03:00 UTC 2021 Andrei Zeliankou <zelenkov@nginx.com> Tests: style.
/unit/test/unit/applications/lang/
H A Djava.pydiff 2500:ca911376b56b Fri Jul 07 13:54:00 UTC 2023 Sergey A. Osokin <sergey.osokin@nginx.com> Update third-party components for Unit's Java module.
diff 2004:ca4c5855f139 Mon Nov 15 00:13:00 UTC 2021 Andrei Zeliankou <zelenkov@nginx.com> Tests: refactored working with processes.
/unit/src/wasm-wasi-component/src/
H A Dlib.rsdiff 2684:73ac5ae02750 Tue Feb 13 16:21:00 UTC 2024 Andrew Clayton <a.clayton@nginx.com> Wasm-wc: Allow to use the 'reactor' adaptor again

With the initial port to wasmtime 17 we could no longer use the
'reactor' adaptor but had to switch to the more restrictive 'proxy'
adaptor.

This meant amongst other things (probably) we could no longer access the
filesystem.

Thanks to Joel Dice for pointing out the fix.

With this we can go back to using the 'reactor' adaptor again and things
are back to working as before.

It's worth noting that you can use either the 'proxy' or 'reactor'
adaptor depending on your requirements.

Cc: Joel Dice <joel.dice@fermyon.com>
Signed-off-by: Andrew Clayton <a.clayton@nginx.com>
2679:63c3027e214c Sun Oct 29 22:13:00 UTC 2023 Alex Crichton <alex@alexcrichton.com> Wasm-wc: Core of initial Wasm component model language module support

This is the work of Alex Crichton.

This is written in Rust. The problem is that there is currently no
support on the C side of things for the component model, which is the
point of this module.

It talks to Unit via automatically generated bindings.

I've (Andrew) just made some minor tweaks to src/lib.rs, build.rs &
Cargo.toml to adjust some paths, adjust where we get the language module
config from and the module name and where it's located in the source
tree,

I also removed and disabled the tracking of the Cargo.lock file, this is
constantly changing and not tracking it seems right for 'libraries' and
dropped the README's...

Other than that I have tried to leave his work intact, subsequent
commits will make some larger changes, but I didn't want to intermix
them with Alex's work.

One such commit will update the module to use wasmtime 17 which brings
WASI 0.2.0 support.

Signed-off-by: Andrew Clayton <a.clayton@nginx.com>
/unit/src/wasm-wasi-component/
H A Dwrapper.h2679:63c3027e214c Sun Oct 29 22:13:00 UTC 2023 Alex Crichton <alex@alexcrichton.com> Wasm-wc: Core of initial Wasm component model language module support

This is the work of Alex Crichton.

This is written in Rust. The problem is that there is currently no
support on the C side of things for the component model, which is the
point of this module.

It talks to Unit via automatically generated bindings.

I've (Andrew) just made some minor tweaks to src/lib.rs, build.rs &
Cargo.toml to adjust some paths, adjust where we get the language module
config from and the module name and where it's located in the source
tree,

I also removed and disabled the tracking of the Cargo.lock file, this is
constantly changing and not tracking it seems right for 'libraries' and
dropped the README's...

Other than that I have tried to leave his work intact, subsequent
commits will make some larger changes, but I didn't want to intermix
them with Alex's work.

One such commit will update the module to use wasmtime 17 which brings
WASI 0.2.0 support.

Signed-off-by: Andrew Clayton <a.clayton@nginx.com>
H A D.gitignore2679:63c3027e214c Sun Oct 29 22:13:00 UTC 2023 Alex Crichton <alex@alexcrichton.com> Wasm-wc: Core of initial Wasm component model language module support

This is the work of Alex Crichton.

This is written in Rust. The problem is that there is currently no
support on the C side of things for the component model, which is the
point of this module.

It talks to Unit via automatically generated bindings.

I've (Andrew) just made some minor tweaks to src/lib.rs, build.rs &
Cargo.toml to adjust some paths, adjust where we get the language module
config from and the module name and where it's located in the source
tree,

I also removed and disabled the tracking of the Cargo.lock file, this is
constantly changing and not tracking it seems right for 'libraries' and
dropped the README's...

Other than that I have tried to leave his work intact, subsequent
commits will make some larger changes, but I didn't want to intermix
them with Alex's work.

One such commit will update the module to use wasmtime 17 which brings
WASI 0.2.0 support.

Signed-off-by: Andrew Clayton <a.clayton@nginx.com>
H A DCargo.toml2679:63c3027e214c Sun Oct 29 22:13:00 UTC 2023 Alex Crichton <alex@alexcrichton.com> Wasm-wc: Core of initial Wasm component model language module support

This is the work of Alex Crichton.

This is written in Rust. The problem is that there is currently no
support on the C side of things for the component model, which is the
point of this module.

It talks to Unit via automatically generated bindings.

I've (Andrew) just made some minor tweaks to src/lib.rs, build.rs &
Cargo.toml to adjust some paths, adjust where we get the language module
config from and the module name and where it's located in the source
tree,

I also removed and disabled the tracking of the Cargo.lock file, this is
constantly changing and not tracking it seems right for 'libraries' and
dropped the README's...

Other than that I have tried to leave his work intact, subsequent
commits will make some larger changes, but I didn't want to intermix
them with Alex's work.

One such commit will update the module to use wasmtime 17 which brings
WASI 0.2.0 support.

Signed-off-by: Andrew Clayton <a.clayton@nginx.com>
H A Dbuild.rs2679:63c3027e214c Sun Oct 29 22:13:00 UTC 2023 Alex Crichton <alex@alexcrichton.com> Wasm-wc: Core of initial Wasm component model language module support

This is the work of Alex Crichton.

This is written in Rust. The problem is that there is currently no
support on the C side of things for the component model, which is the
point of this module.

It talks to Unit via automatically generated bindings.

I've (Andrew) just made some minor tweaks to src/lib.rs, build.rs &
Cargo.toml to adjust some paths, adjust where we get the language module
config from and the module name and where it's located in the source
tree,

I also removed and disabled the tracking of the Cargo.lock file, this is
constantly changing and not tracking it seems right for 'libraries' and
dropped the README's...

Other than that I have tried to leave his work intact, subsequent
commits will make some larger changes, but I didn't want to intermix
them with Alex's work.

One such commit will update the module to use wasmtime 17 which brings
WASI 0.2.0 support.

Signed-off-by: Andrew Clayton <a.clayton@nginx.com>
/unit/src/
H A Dnxt_router.cdiff 2374:d5751a1b5795 Mon Mar 13 23:43:00 UTC 2023 Andrew Clayton <a.clayton@nginx.com> Router: More accurately allocate request buffer memory.

In nxt_router_prepare_msg() we create a buffer (nxt_unit_request_t *req)
that gets sent to an application process that contains details about a
client request.

This buffer was always a little larger than needed due to allocating space
for the remote address _and_ port and the local address _and_ port. We
also allocate space for the local port separately.

->{local,remote}->length includes the port number and ':' and also the
'[]' for IPv6. E.g [2001:db8::1]:8080

->{local,remote}->address_length represents the length of the unadorned
IP address. E.g 2001:db8::1

Update the buffer size so that we only allocate what is actually needed.

Suggested-by: Zhidao HONG <z.hong@f5.com>
Cc: Zhidao HONG <z.hong@f5.com>
Reviewed-by: Zhidao HONG <z.hong@f5.com>
Signed-off-by: Andrew Clayton <a.clayton@nginx.com>
diff 2248:67f848571b9f Tue Nov 22 02:13:00 UTC 2022 Zhidao HONG <z.hong@f5.com> NJS: added http request prototype.
diff 2230:83b2d20d8f5c Fri Sep 16 13:38:00 UTC 2022 Andrew Clayton <a.clayton@nginx.com> PHP: allowed to specify URLs without a trailing '/'.

Both @lucatacconi & @mwoodpatrick reported what appears to be the same
issue on GitHub. Namely that when using the PHP language module and
trying to access a URL that is a directory but without specifying the
trailing '/', they were getting a '503 Service Unavailable' error.

Note: This is when _not_ using the 'script' option.

E.g with the following config

{
"listeners": {
"[::1]:8080": {
"pass": "applications/php"
}
},

"applications": {
"php": {
"type": "php",
"root": "/var/tmp/unit-php"
}
}
}

and with a directory path of /var/tmp/unit-php/foo containing an
index.php, you would see the following

$ curl http://localhost/foo
<title>Error 503</title>
Error 503

However

$ curl http://localhost/foo/

would work and serve up the index.php

This commit fixes the above so you get the desired behaviour without
specifying the trailing '/' by doing the following

1] If the URL doesn't end in .php and doesn't have a trailing '/'
then check if the requested path is a directory.

2) If it is a directory then create a 301 re-direct pointing to it.
This matches the behaviour of the likes of nginx, Apache and
lighttpd.

This also matches the behaviour of the "share" action in Unit.

This doesn't effect the behaviour of the 'script' option which bypasses
the nxt_php_dynamic_request() function.

This also adds a couple of tests to test/test_php_application.py to
ensure this continues to work.

Closes: <https://github.com/nginx/unit/issues/717>
Closes: <https://github.com/nginx/unit/issues/753>
Signed-off-by: Andrew Clayton <a.clayton@nginx.com>
diff 2147:7bf58b1b18c4 Wed Jul 13 20:32:00 UTC 2022 Zhidao HONG <z.hong@f5.com> Var: dynamic variables support.

This commit adds the variables $arg_NAME, $header_NAME, and $cookie_NAME.
diff 2033:87f86cfc2002 Thu Nov 25 13:58:00 UTC 2021 Max Romanov <max.romanov@nginx.com> Fixing access_log structure reference counting.

The reference to the access_log structure is stored in the current
nxt_router_conf_t and the global nxt_router_t. When the reference is copied,
the reference counter should be adjusted accordingly.

This closes #593 issue on GitHub.
diff 2017:c1617684637c Thu Nov 25 13:58:00 UTC 2021 Max Romanov <max.romanov@nginx.com> Fixing access_log structure reference counting.

The reference to the access_log structure is stored in the current
nxt_router_conf_t and the global nxt_router_t. When the reference is copied,
the reference counter should be adjusted accordingly.

This closes #593 issue on GitHub.
diff 1978:13e1e2651f08 Thu Oct 28 14:46:00 UTC 2021 Max Romanov <max.romanov@nginx.com> Adding explicit app reference to nxt_router_app_port_release().

port->app field is not thread safe and should be used in main thread only.
To release port after request processing, application reference should be
obtained from corresponding request descriptor.
diff 1915:48167dd83aa5 Mon Jul 19 13:23:00 UTC 2021 Max Romanov <max.romanov@nginx.com> Router: fixing assertion on app thread port handle.

A new application thread port message can be processed in the router after the
application is removed from the router. Assertion for this case is replaced by
a condition to store the new thread port until receiving the stop notification
from the application process.
diff 1854:aebe76640568 Thu Apr 22 05:13:00 UTC 2021 Zhidao HONG <z.hong@f5.com> Router: grouped app and share fields in nxt_http_action_t.

This is a prerequisite for further introduction of openat2() features.
No functional changes.
diff 1780:73699f41c956 Thu Jan 28 14:13:00 UTC 2021 Max Romanov <max.romanov@nginx.com> Router: fixing crash after WebSocket processing.

After WebSocket processing, the application port was released with incorrect
reason ("got request"), unnecessarily decrementing the active request counter.

The assertion was triggered only on application removal; a test was added
for this case.
H A Dnxt_main_process.cdiff 2240:0c49318572c2 Tue Sep 13 14:36:00 UTC 2022 OutOfFocus4 <jeff.iadarola@gmail.com> Removed dead code.

Signed-off-by: Alejandro Colomar <alx@nginx.com>
diff 2078:0996dd223cdd Sat Dec 18 23:58:00 UTC 2021 Alejandro Colomar <alx.manpages@gmail.com> 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 '^ [^ *+]';
diff 1872:9f8df8b810e0 Thu May 20 13:02:00 UTC 2021 Oisin Canty <o.canty@f5.com> Python: support for multiple targets.
diff 1689:e0d01647db76 Thu Nov 05 13:10:00 UTC 2020 Max Romanov <max.romanov@nginx.com> Perl: request processing in multiple threads.

This closes #486 issue on GitHub.
diff 1489:4a3ec07f4b19 Thu May 28 13:57:00 UTC 2020 Tiago Natel de Moura <t.nateldemoura@f5.com> Added "rootfs" feature.
diff 1305:966d691dab2c Fri Dec 06 13:28:00 UTC 2019 Tiago Natel <t.nateldemoura@f5.com> Moved credential-related code to nxt_credential.c.

This is required to avoid include cycles, as some nxt_clone_* functions
depend on the credential structures, but nxt_process depends on clone
structures.
diff 1254:aae6699f4eee Tue Oct 29 13:07:00 UTC 2019 Hong Zhi Dao <hongzhidao@gmail.com> Process port refactoring.

- Introduced nxt_runtime_process_port_create().
- Moved nxt_process_use() into nxt_process.c from nxt_runtime.c.
- Renamed nxt_runtime_process_remove_pid() as nxt_runtime_process_remove().
- Some public functions transformed to static.

This closes #327 issue on GitHub.
diff 1211:55773d33e999 Mon Sep 30 13:39:00 UTC 2019 Max Romanov <max.romanov@nginx.com> Fixed exiting if a signal arrives during discovery.

When Unit starts, the main process waits for module discovery message for a
while. If a QUIT signal arrives at this time, the router and controller
processes created by main and Unit stay running. Also, the main process
doesn't stop them after the second QUIT signal is received in this case.
diff 1203:fee09d50e49f Fri Sep 20 13:08:00 UTC 2019 Tiago Natel <t.nateldemoura@f5.com> Removed linux/sched.h include.

The <sched.h> is already included by nxt_unix.h.

This closes #314 PR on GitHub.
diff 1202:39a3a6a95815 Fri Sep 20 13:12:00 UTC 2019 Tiago Natel <t.nateldemoura@f5.com> Releasing init struct in case of errors.

Found by Coverity (CID 349485).
H A Dnxt_conf_validation.cdiff 2265:6c65127da239 Wed May 04 15:13:00 UTC 2022 Andrew Clayton <a.clayton@nginx.com> Configuration: made large_header_buffer_size a valid setting.

@JanMikes and @tagur87 on GitHub both reported issues with long URLs
that were exceeding the 8192 byte large_header_buffer_size setting,
which resulted in a HTTP 431 error (Request Header Fields Too Large).

This can be resolved in the code by updating the following line in
src/nxt_router.c::nxt_router_conf_create()

skcf->large_header_buffer_size = 8192;

However, requiring users to modify unit and install custom versions is
less than ideal. We could increase the value, but to what?

This commit takes the option of allowing the user to set this option in
their config by making large_header_buffer_size a valid configuration
setting.

large_header_buffer_size is already set by the configuration system in
nxt_router.c it just isn't set as a valid config option in
nxt_conf_validation.c

With this change users can set this option in their config if required
by the following

"settings": {
"http": {
"large_header_buffer_size": 16384
}
},

It retains its default value of 8192 bytes if this is not set.

With this commit, without the above setting or too low a value, with a
long URL you get a 431 error. With the above setting set to a large
enough value, the request is successful.

NOTE: This setting really determines the maximum size of any single
header _value_. Also, unit will try and place multiple values
into a buffer _if_ they fully fit.

NOTE: This is being released as undocumented and subject to change as it
exposes internal workings of unit.

Closes: <https://github.com/nginx/unit/issues/521>
Signed-off-by: Andrew Clayton <a.clayton@nginx.com>
diff 2147:7bf58b1b18c4 Wed Jul 13 20:32:00 UTC 2022 Zhidao HONG <z.hong@f5.com> Var: dynamic variables support.

This commit adds the variables $arg_NAME, $header_NAME, and $cookie_NAME.
diff 2079:0dcffa83cac2 Fri Mar 11 00:59:00 UTC 2022 Alejandro Colomar <alx.manpages@gmail.com> Added NXT_MAYBE_UNUSED for __attribute__((__unused__)).

When testing some configurations of compilers and OSes, I noticed
that clang(1) 13 on Debian caused a function to be compiled but
unused, and the compiler triggered a compile error.

To avoid that error, use __attribute__((__unused__)). Let's call
our wrapper NXT_MAYBE_UNUSED, since it describes itself more
precisely than the GCC attribute name. It's also the name that
C2x (likely C23) has given to the standard attribute, which is
[[maybe_unused]], so it's also likely to be more readable because
of that name being in ISO C.
diff 2078:0996dd223cdd Sat Dec 18 23:58:00 UTC 2021 Alejandro Colomar <alx.manpages@gmail.com> 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 '^ [^ *+]';
diff 1879:fb89cf8544e7 Tue May 25 13:21:00 UTC 2021 Oisin Canty <o.canty@f5.com> Configuration: generalized application "targets" validation.
diff 1872:9f8df8b810e0 Thu May 20 13:02:00 UTC 2021 Oisin Canty <o.canty@f5.com> Python: support for multiple targets.
diff 1709:1fe93c17d23f Tue Nov 17 13:50:00 UTC 2020 Valentin Bartenev <vbart@nginx.com> HTTP parser: allowed more characters in header field names.

Previously, all requests that contained in header field names characters other
than alphanumeric, or "-", or "_" were rejected with a 400 "Bad Request" error
response.

Now, the parser allows the same set of characters as specified in RFC 7230,
including: "!", "#", "$", "%", "&", "'", "*", "+", ".", "^", "`", "|", and "~".
Header field names that contain only these characters are considered valid.

Also, there's a new option introduced: "discard_unsafe_fields". It accepts
boolean value and it is set to "true" by default.

When this option is "true", all header field names that contain characters
in valid range, but other than alphanumeric or "-" are skipped during parsing.
When the option is "false", these header fields aren't skipped.

Requests with non-valid characters in header field names according to
RFC 7230 are rejected regardless of "discard_unsafe_fields" setting.

This closes #422 issue on GitHub.
diff 1704:6a003e0f3a6e Fri Nov 13 10:48:00 UTC 2020 Tiago Natel de Moura <t.nateldemoura@f5.com> Isolation: added option to disable tmpfs mount.

Now users can disable the default tmpfs mount point
in the rootfs.

{
"isolation": {
"automount": {
"tmpfs": false
}
}
}
diff 1689:e0d01647db76 Thu Nov 05 13:10:00 UTC 2020 Max Romanov <max.romanov@nginx.com> Perl: request processing in multiple threads.

This closes #486 issue on GitHub.
diff 1530:4e37131e3818 Tue Jul 28 13:51:00 UTC 2020 Axel Duch <axel.duch@nginx.com> Configuration: fixed buffer over-read in pattern validation.

There was an undefined behavior in the validation function, caused by testing
one character after the string if a wildcard was at the end.
H A Dnxt_application.hdiff 2240:0c49318572c2 Tue Sep 13 14:36:00 UTC 2022 OutOfFocus4 <jeff.iadarola@gmail.com> Removed dead code.

Signed-off-by: Alejandro Colomar <alx@nginx.com>
diff 1872:9f8df8b810e0 Thu May 20 13:02:00 UTC 2021 Oisin Canty <o.canty@f5.com> Python: support for multiple targets.
diff 1689:e0d01647db76 Thu Nov 05 13:10:00 UTC 2020 Max Romanov <max.romanov@nginx.com> Perl: request processing in multiple threads.

This closes #486 issue on GitHub.
diff 1489:4a3ec07f4b19 Thu May 28 13:57:00 UTC 2020 Tiago Natel de Moura <t.nateldemoura@f5.com> Added "rootfs" feature.
diff 718:f6866084cc80 Wed Jul 11 13:53:00 UTC 2018 Valentin Bartenev <vbart@nginx.com> Removed unused "nxt_app_header_field_t" structure.

It's not used since 3b77edf46701.
diff 703:2d536dde84d2 Mon Jun 25 13:51:00 UTC 2018 Valentin Bartenev <vbart@nginx.com> Introduced nxt_length() macro.
diff 687:492cbccba4fe Thu Jun 07 13:17:00 UTC 2018 Valentin Bartenev <vbart@nginx.com> PHP: added setting of php.ini configuration file path.
diff 685:99f3d48664de Wed Jun 06 13:53:00 UTC 2018 Valentin Bartenev <vbart@nginx.com> Go: specifying command line arguments to the executable.

This closes #110 issue on GitHub.
diff 673:9fa79c719a17 Mon May 21 13:14:00 UTC 2018 Valentin Bartenev <vbart@nginx.com> Added SERVER_SOFTWARE request meta-variable.
diff 611:323e11065f83 Wed Apr 04 15:13:00 UTC 2018 Valentin Bartenev <vbart@nginx.com> Style: capitalized letters in hexadecimal literals.
H A Dnxt_application.cdiff 1489:4a3ec07f4b19 Thu May 28 13:57:00 UTC 2020 Tiago Natel de Moura <t.nateldemoura@f5.com> Added "rootfs" feature.
diff 1239:12102374f13a Tue Oct 22 13:14:00 UTC 2019 Max Romanov <max.romanov@nginx.com> Fixing process crash in case of module load error.

This is related to #330 issue on GitHub.
diff 1104:cb554ac9411a Wed Jul 17 13:57:00 UTC 2019 Max Romanov <max.romanov@nginx.com> Exiting application process in case of pre_init stage error.
diff 723:c48e0ee3a8b3 Thu Jul 12 13:06:00 UTC 2018 Max Romanov <max.romanov@nginx.com> Enabled body buffer shared memory segmentation.

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.
diff 703:2d536dde84d2 Mon Jun 25 13:51:00 UTC 2018 Valentin Bartenev <vbart@nginx.com> Introduced nxt_length() macro.
diff 673:9fa79c719a17 Mon May 21 13:14:00 UTC 2018 Valentin Bartenev <vbart@nginx.com> Added SERVER_SOFTWARE request meta-variable.
diff 645:1c993ea13906 Tue Apr 17 18:13:00 UTC 2018 Valentin Bartenev <vbart@nginx.com> Added missing checks if nxt_port_rpc_register_handler() failed.

This closes #97 issue on GitHub.
Thanks to 洪志道 (Hong Zhi Dao).
diff 584:28e8e1877e62 Wed Mar 21 13:50:00 UTC 2018 Alexander Borisov <alexander.borisov@nginx.com> Added Ruby support.
diff 549:42b904605f6b Wed Feb 14 13:33:00 UTC 2018 Valentin Bartenev <vbart@nginx.com> Fixed race condition while discovering modules.

Previously, the discovery process might exit before the main process
received a list of available modules.
diff 431:5817734dd9b9 Thu Dec 28 13:01:00 UTC 2017 Igor Sysoev <igor@sysoev.ru> HTTP keep-alive connections support.

12345678910>>...19