summaryrefslogtreecommitdiffhomepage
AgeCommit message (Collapse)AuthorFilesLines
2021-05-24Tests: minor fixes.Andrei Zeliankou2-77/+25
2021-05-21PHP: adopted "file_handle" to Zend API changes in 8.1.0-dev.Valentin Bartenev1-0/+10
This fixes building module with the development version of PHP after the change: https://github.com/php/php-src/commit/c732ab400af92c54eee47c487a56009f1d79dd5d
2021-05-20Tests: Python targets.Oisin Canty7-32/+295
2021-05-20Python: support for multiple targets.Oisin Canty10-79/+386
2021-05-18Tests: added test to check port release.Andrei Zeliankou1-0/+28
2021-05-18Ruby: changing deprecated rb_cData to rb_cObject.Oisin Canty2-2/+12
Ruby 3.0 deprecated rb_cData with the intention to remove it in release 3.1. This commit changes references of rb_cData to rb_cObject. This was done so we can support distributions that package Ruby 3.0, such as Fedora 34. We also need to call rb_undef_alloc_func because we're no longer deriving from rb_cData. This prevents unnecessary allocations. See: https://docs.ruby-lang.org/en/3.0.0/doc/extension_rdoc.html "It is recommended that klass derives from a special class called Data (rb_cData) but not from Object or other ordinal classes. If it doesn't, you have to call rb_undef_alloc_func(klass)."
2021-05-17Fixing a crash after applying the wrong TLS configuration.Andrey Suvorov2-3/+22
When an invalid TLS configuration is applied (such as the conf_commands feature), nxt_cert_store_get() creates a buffer to send a certificate request to the main process and adds its default completion handler to an asynchronous queue to free the allocated buffer. However, if configuration fails, nxt_router_conf_error() removes the memory pool used to allocate the buffer, causing a crash when the completion handler is dispatched. Assertion "src/nxt_buf.c:208 assertion failed: data == b->parent" is triggered when is NXT_DEBUG enabled in the configure script. This patch uses a reference counter to retain the memory pool and redefines the completion handler to free the buffer before releasing the memory pool.
2021-05-17Tests: fixed incorrect "--restart" mode performing.Andrei Zeliankou1-4/+6
2021-05-17Fixing racing condition on listen socket close in router.Max Romanov2-10/+16
Listen socket is actually closed in the instant timer handler. This patch moves the "configuration has been applied" notification to the timer handler to avoid a situation when the user gets the response from the controller, but the listen socket is still open in the router.
2021-05-12Tests: added test for TLS with IP in SAN.Andrei Zeliankou2-2/+30
2021-05-12Node.js: a shim for overriding "http" and "websocket" modules.Oisin Canty44-78/+288
Also added stubs for Server.address() This was done to prevent crashes in some popular frameworks like express Supports both CommonJS and the new ES Modules system syntax e.g: app.js: const http = require('http') app.mjs: import http from "http" Usage on Node 14.16.x and higher: { "type": "external", "processes": {"spare": 0}, "working_directory": '/project', "executable": "/usr/bin/env", "arguments": [ "node", "--loader", "unit-http/require_shim.mjs" "--require", "unit-http/require_shim", "app.js" ] } Usage on Node 14.15.x and lower: { "type": "external", "processes": {"spare": 0}, "working_directory": '/project', "executable": "/usr/bin/env", "arguments": [ "node", "--require", "unit-http/require_shim", "app.js" ] }
2021-05-11Tests: temporary dir removed after tests execution.Andrei Zeliankou1-0/+6
2021-05-07Tests: added test for TLS with empty Subject field.Andrei Zeliankou1-109/+130
2021-05-07Tests: PHP test with getting variable before the script is loaded.Andrei Zeliankou3-2/+18
2021-05-07PHP: forced initialization of $_SERVER in fastcgi_finish_request().Valentin Bartenev2-1/+33
The "auto_globals_jit" PHP option postponed the initialization of the $_SERVER global variable until the script using it had been loaded (e. g. via the "include" expression). As a result, nxt_php_register_variables() could be called after fastcgi_finish_request() had finished the request and nulled ctx->req, which thus caused a segmentation fault.
2021-05-06Tests: MIME filteringOisin Canty1-0/+170
2021-05-06Static: implemented MIME filteringOisin Canty5-17/+79
2021-05-05Tests: added tests for openat2() features.Andrei Zeliankou6-8/+380
2021-05-05Fixed format and arguments mismatches in error log messages.Zhidao HONG2-3/+3
2021-05-05Fixed building without openat2().Zhidao HONG1-1/+3
2021-04-29Static: support for openat2() features.Zhidao HONG10-27/+313
Support for chrooting, rejecting symlinks, and rejecting crossing mounting points on a per-request basis during static file serving.
2021-04-22Router: grouped app and share fields in nxt_http_action_t.Zhidao HONG5-31/+45
This is a prerequisite for further introduction of openat2() features. No functional changes.
2021-04-21Packages: switched to common address for package maintainers.Andrei Belov7-7/+15
2021-04-14Tests: fixed "skip" descriptors check flag for controller.Andrei Zeliankou1-1/+1
2021-04-12Packages: fixed Amazon Linux 2 module packages to use openssl 1.1Konstantin Pavlov1-0/+4
2021-04-08Tests: preserving unit.log when run without restart.Max Romanov9-96/+94
Introducing "unit.log.Log" class for "unit.log" file management. Moving "findall()" function into TestApplicationProto. Using "os.kill()" to send signals.
2021-04-08Packages: moved Amazon Linux 2 packages to use openssl 1.1Konstantin Pavlov2-0/+8
2021-04-05Tests: style.Andrei Zeliankou67-623/+698
2021-04-01Tests: unset LC_ALL variable in Ruby encoding test.Andrei Zeliankou1-1/+2
This change is necessary to set Encoding.default_external value correctly.
2021-03-31Tests: removed skip_alert().Andrei Zeliankou1-4/+1
2021-03-31Packages: fixed "dist" target to include man page in the archive.Valentin Bartenev1-1/+1
2021-03-31Tests: added file descriptor leak detection.Andrei Zeliankou2-2/+132
2021-03-26Tests: SNI.Andrei Zeliankou3-4/+306
2021-03-26Tests: added test for Ruby default encoding.Andrei Zeliankou2-0/+55
2021-03-26Packages: corrected permissions for /var/log/unit in rpm.Andrei Belov1-1/+1
Found by rpmlint.
2021-03-26Corrected man page permissions in manpage-install.Andrei Belov1-1/+1
Found by rpmlint.
2021-03-26Version bump.Valentin Bartenev2-2/+31
2021-03-25Added tag 1.23.0 for changeset 49ee24c03f57Valentin Bartenev1-0/+1
2021-03-25Generated Dockerfiles for Unit 1.23.0.1.23.0Valentin Bartenev8-8/+8
2021-03-25Added version 1.23.0 CHANGES.Valentin Bartenev2-1/+63
2021-03-25Fixed wording in docs/changes.xml for the 1.23.0 release.Artem Konev1-7/+9
2021-03-25Fixing shm buffer leakage when sending over the port queue.Max Romanov2-13/+91
When the shm buffer is sent over the port queue, it needs to be completed because it's sent over the port socket.
2021-03-25Node.js: used distinct placeholder for version in "package.json".Valentin Bartenev2-2/+2
This makes the "sed" instruction simpler and more portable, as the previous variant didn't work well on BSD systems due to the "\s" metacharacter. Thanks to Sergey A. Osokin <osa@FreeBSD.org.ru> for spotting this issue. Also, this should prevent accidentally creating a version 1.0.0 package.
2021-03-25Node.js: fixing module global installation.Max Romanov1-12/+26
Globally installed modules require a globally installed libunit. The "binding_pub.gyp" file is the correct version, otherwise linked module may have unresolved symbols because libunit is not linked.
2021-03-25Releasing shm buffers for large body requests.Max Romanov2-12/+4
This fixes memory and shm file descriptor leakage that occurred when a large request body was passed via shared memory. The leakage was caught with the "test_settings_body_buffer_size" test. The main condition is the "body_buffer_size" value exceeding 10 Mb (a shm segment). Thus, the router was forced to split the body into several shm segments, but these buffers were not freed because of dummy completion handlers.
2021-03-24Added ability to configure multiple certificates on a listener.Andrey Suvorov5-68/+524
The certificate is selected by matching the arriving SNI to the common name and the alternatives names. If no certificate matches the name, the first bundle in the array is chosen.
2021-03-24Packages: added man page on rpm-based systems.Konstantin Pavlov2-2/+3
2021-03-24Packages: added man page on debian-based systems.Konstantin Pavlov2-2/+4
2021-03-24Added build system support for a man page.Konstantin Pavlov6-6/+42
2021-03-24Added a missing .El directive in man page source.Artem Konev1-0/+1