summaryrefslogtreecommitdiffhomepage
AgeCommit message (Collapse)AuthorFilesLines
2021-05-26Fixing crash during TLS connection shutdown.Andrey Suvorov5-6/+35
A crash was caused by an incorrect timer handler nxt_h1p_idle_timeout() if SSL_shutdown() returned SSL_ERROR_WANT_READ/SSL_ERROR_WANT_WRITE. The flag SSL_RECEIVED_SHUTDOWN is used to avoid getting SSL_ERROR_WANT_READ, so the server won't wait for a close notification from a client. For SSL_ERROR_WANT_WRITE, a correct timer handler is set up.
2021-05-26Static: handled unknown MIME types when MIME-filtering active.Oisin Canty3-20/+16
2021-05-26MIME: added PHP.Oisin Canty2-0/+8
2021-05-25Fixing racing condition on listen socket close in router (v2).Max Romanov1-5/+5
This patch fixes a possible race between the nxt_router_conf_wait() and nxt_router_listen_socket_release() function calls and improves the 7f1b2eaa2d58 commit fix.
2021-05-25Go: fixing tests for Go 1.16.Max Romanov3-1/+3
In Go 1.16, the module-aware mode is enabled by default; to fall back to previous behavior, the GO111MODULE environment variable should be set to 'auto'. Details: https://golang.org/doc/go1.16
2021-05-25Configuration: generalized application "targets" validation.Oisin Canty1-110/+68
2021-05-24Tests: added additional check in tests with timeouts.Andrei Zeliankou1-76/+119
2021-05-24Tests: test_settings_send_timeout improved.Andrei Zeliankou3-8/+34
Data length adjusts depending on socket buffer size when it's possible.
2021-05-24Node.js: renamed "require_shim" to "loader".Oisin Canty15-16/+16
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