xref: /unit/CHANGES (revision 2045:bf2c0b1382df)
1*2045Svbart@nginx.com
2*2045Svbart@nginx.comChanges with Unit 1.26.1                                         02 Dec 2021
3*2045Svbart@nginx.com
4*2045Svbart@nginx.com    *) Bugfix: occasionally, the Unit daemon was unable to fully terminate;
5*2045Svbart@nginx.com       the bug had appeared in 1.26.0.
6*2045Svbart@nginx.com
7*2045Svbart@nginx.com    *) Bugfix: a prototype process could crash on an application process
8*2045Svbart@nginx.com       exit; the bug had appeared in 1.26.0.
9*2045Svbart@nginx.com
10*2045Svbart@nginx.com    *) Bugfix: the router process crashed on reconfiguration if "access_log"
11*2045Svbart@nginx.com       was configured without listeners.
12*2045Svbart@nginx.com
13*2045Svbart@nginx.com    *) Bugfix: a segmentation fault occurred in the PHP module if chdir() or
14*2045Svbart@nginx.com       fastcgi_finish_request() was called in the OPcache preloading script.
15*2045Svbart@nginx.com
16*2045Svbart@nginx.com    *) Bugfix: fatal errors on DragonFly BSD; the bug had appeared in
17*2045Svbart@nginx.com       1.26.0.
18*2045Svbart@nginx.com
192007Svbart@nginx.com
202007Svbart@nginx.comChanges with Unit 1.26.0                                         18 Nov 2021
212007Svbart@nginx.com
222007Svbart@nginx.com    *) Change: the "share" option now specifies the entire path to the files
232007Svbart@nginx.com       it serves, rather than a document root directory to be prepended to
242007Svbart@nginx.com       the request URI.
252007Svbart@nginx.com
262007Svbart@nginx.com    *) Feature: automatic adjustment of existing configurations to the new
272007Svbart@nginx.com       "share" behavior when updating from previous versions.
282007Svbart@nginx.com
292007Svbart@nginx.com    *) Feature: variables support in the "share" option.
302007Svbart@nginx.com
312007Svbart@nginx.com    *) Feature: multiple paths in the "share" option.
322007Svbart@nginx.com
332007Svbart@nginx.com    *) Feature: variables support in the "chroot" option.
342007Svbart@nginx.com
352007Svbart@nginx.com    *) Feature: PHP opcache is shared between application processes.
362007Svbart@nginx.com
372007Svbart@nginx.com    *) Feature: request routing by the query string.
382007Svbart@nginx.com
392007Svbart@nginx.com    *) Bugfix: the router and app processes could crash when the requests
402007Svbart@nginx.com       limit was reached by asynchronous or multithreaded apps.
412007Svbart@nginx.com
422007Svbart@nginx.com    *) Bugfix: established WebSocket connections could stop reading frames
432007Svbart@nginx.com       from the client after the corresponding listener had been
442007Svbart@nginx.com       reconfigured.
452007Svbart@nginx.com
462007Svbart@nginx.com    *) Bugfix: fixed building with glibc 2.34, notably Fedora 35.
472007Svbart@nginx.com
481945Svbart@nginx.com
491945Svbart@nginx.comChanges with Unit 1.25.0                                         19 Aug 2021
501945Svbart@nginx.com
511945Svbart@nginx.com    *) Feature: client IP address replacement from a specified HTTP header
521945Svbart@nginx.com       field.
531945Svbart@nginx.com
541945Svbart@nginx.com    *) Feature: TLS sessions cache.
551945Svbart@nginx.com
561945Svbart@nginx.com    *) Feature: TLS session tickets.
571945Svbart@nginx.com
581945Svbart@nginx.com    *) Feature: application restart control.
591945Svbart@nginx.com
601945Svbart@nginx.com    *) Feature: process and thread lifecycle hooks in Ruby.
611945Svbart@nginx.com
621945Svbart@nginx.com    *) Bugfix: the router process could crash on TLS connection open when
631945Svbart@nginx.com       multiple listeners with TLS certificates were configured; the bug had
641945Svbart@nginx.com       appeared in 1.23.0.
651945Svbart@nginx.com
661945Svbart@nginx.com    *) Bugfix: TLS connections were rejected for configurations with
671945Svbart@nginx.com       multiple certificate bundles in a listener if the client did not use
681945Svbart@nginx.com       SNI.
691945Svbart@nginx.com
702007Svbart@nginx.com    *) Bugfix: the router process could crash with frequent multithreaded
711945Svbart@nginx.com       application reconfiguration.
721945Svbart@nginx.com
731945Svbart@nginx.com    *) Bugfix: compatibility issues with some Python ASGI apps, notably
741945Svbart@nginx.com       based on the Starlette framework.
751945Svbart@nginx.com
761945Svbart@nginx.com    *) Bugfix: a descriptor and memory leak occurred in the router process
771945Svbart@nginx.com       when an app process stopped or crashed.
781945Svbart@nginx.com
791945Svbart@nginx.com    *) Bugfix: the controller or router process could crash if the
801945Svbart@nginx.com       configuration contained a full-form IPv6 in a listener address.
811945Svbart@nginx.com
821945Svbart@nginx.com    *) Bugfix: the router process crashed when a request was passed to an
831945Svbart@nginx.com       empty "routes" or "upstreams" using a variable "pass" option.
841945Svbart@nginx.com
851945Svbart@nginx.com    *) Bugfix: the router process crashed while matching a request to an
861945Svbart@nginx.com       empty array of source or destination address patterns.
871945Svbart@nginx.com
881891Svbart@nginx.com
891891Svbart@nginx.comChanges with Unit 1.24.0                                         27 May 2021
901891Svbart@nginx.com
911891Svbart@nginx.com    *) Change: PHP added to the default MIME type list.
921891Svbart@nginx.com
931891Svbart@nginx.com    *) Feature: arbitrary configuration of TLS connections via OpenSSL
941891Svbart@nginx.com       commands.
951891Svbart@nginx.com
961891Svbart@nginx.com    *) Feature: the ability to limit static file serving by MIME types.
971891Svbart@nginx.com
981891Svbart@nginx.com    *) Feature: support for chrooting, rejecting symlinks, and rejecting
991891Svbart@nginx.com       mount point traversal on a per-request basis when serving static
1001891Svbart@nginx.com       files.
1011891Svbart@nginx.com
1021891Svbart@nginx.com    *) Feature: a loader for automatically overriding the "http" and
1031891Svbart@nginx.com       "websocket" modules in Node.js.
1041891Svbart@nginx.com
1051891Svbart@nginx.com    *) Feature: multiple "targets" in Python applications.
1061891Svbart@nginx.com
1071891Svbart@nginx.com    *) Feature: compatibility with Ruby 3.0.
1081891Svbart@nginx.com
1091891Svbart@nginx.com    *) Bugfix: the router process could crash while closing a TLS
1101891Svbart@nginx.com       connection.
1111891Svbart@nginx.com
1121891Svbart@nginx.com    *) Bugfix: a segmentation fault might have occurred in the PHP module if
1131891Svbart@nginx.com       fastcgi_finish_request() was used with the "auto_globals_jit" option
1141891Svbart@nginx.com       enabled.
1151891Svbart@nginx.com
1161834Svbart@nginx.com
1171834Svbart@nginx.comChanges with Unit 1.23.0                                         25 Mar 2021
1181834Svbart@nginx.com
1191834Svbart@nginx.com    *) Feature: support for multiple certificate bundles on a listener via
1201834Svbart@nginx.com       the Server Name Indication (SNI) TLS extension.
1211834Svbart@nginx.com
1221834Svbart@nginx.com    *) Feature: "--mandir" ./configure option to specify the directory for
1231834Svbart@nginx.com       man page installation.
1241834Svbart@nginx.com
1251834Svbart@nginx.com    *) Bugfix: the router process could crash on premature TLS connection
1261834Svbart@nginx.com       close; the bug had appeared in 1.17.0.
1271834Svbart@nginx.com
1281834Svbart@nginx.com    *) Bugfix: a connection leak occurred on premature TLS connection close;
1291834Svbart@nginx.com       the bug had appeared in 1.6.
1301834Svbart@nginx.com
1311834Svbart@nginx.com    *) Bugfix: a descriptor and memory leak occurred in the router process
1321834Svbart@nginx.com       when processing small WebSocket frames from a client; the bug had
1331834Svbart@nginx.com       appeared in 1.19.0.
1341834Svbart@nginx.com
1351834Svbart@nginx.com    *) Bugfix: a descriptor leak occurred in the router process when
1361834Svbart@nginx.com       removing or reconfiguring an application; the bug had appeared in
1371834Svbart@nginx.com       1.19.0.
1381834Svbart@nginx.com
1391834Svbart@nginx.com    *) Bugfix: persistent storage of certificates might've not worked with
1401834Svbart@nginx.com       some filesystems in Linux, and all uploaded certificate bundles were
1411834Svbart@nginx.com       forgotten after restart.
1421834Svbart@nginx.com
1431834Svbart@nginx.com    *) Bugfix: the controller process could crash while requesting
1441834Svbart@nginx.com       information about a certificate with a non-DNS SAN entry.
1451834Svbart@nginx.com
1461834Svbart@nginx.com    *) Bugfix: the controller process could crash on manipulations with a
1471834Svbart@nginx.com       certificate containing a SAN and no standard name attributes in
1481834Svbart@nginx.com       subject or issuer.
1491834Svbart@nginx.com
1501834Svbart@nginx.com    *) Bugfix: the Ruby module didn't respect the user locale for defaults
1511834Svbart@nginx.com       in the Encoding class.
1521834Svbart@nginx.com
1531834Svbart@nginx.com    *) Bugfix: the PHP 5 module failed to build with thread safety enabled;
1541834Svbart@nginx.com       the bug had appeared in 1.22.0.
1551834Svbart@nginx.com
1561793Svbart@nginx.com
1571793Svbart@nginx.comChanges with Unit 1.22.0                                         04 Feb 2021
1581793Svbart@nginx.com
1591793Svbart@nginx.com    *) Feature: the ServerRequest and ServerResponse objects of Node.js
1601793Svbart@nginx.com       module are now compliant with Stream API.
1611793Svbart@nginx.com
1621793Svbart@nginx.com    *) Feature: support for specifying multiple directories in the "path"
1631793Svbart@nginx.com       option of Python apps.
1641793Svbart@nginx.com
1651793Svbart@nginx.com    *) Bugfix: a memory leak occurred in the router process when serving
1661793Svbart@nginx.com       files larger than 128K; the bug had appeared in 1.13.0.
1671793Svbart@nginx.com
1681793Svbart@nginx.com    *) Bugfix: apps could stop processing new requests under high load; the
1691793Svbart@nginx.com       bug had appeared in 1.19.0.
1701793Svbart@nginx.com
1711793Svbart@nginx.com    *) Bugfix: app processes could terminate unexpectedly under high load;
1721793Svbart@nginx.com       the bug had appeared in 1.19.0.
1731793Svbart@nginx.com
1741793Svbart@nginx.com    *) Bugfix: invalid HTTP responses were generated for some unusual status
1751793Svbart@nginx.com       codes.
1761793Svbart@nginx.com
1771793Svbart@nginx.com    *) Bugfix: the PHP_AUTH_USER, PHP_AUTH_PW, and PHP_AUTH_DIGEST server
1781793Svbart@nginx.com       variables were missing in the PHP module.
1791793Svbart@nginx.com
1801793Svbart@nginx.com    *) Bugfix: the router process could crash with multithreaded apps under
1811793Svbart@nginx.com       high load.
1821793Svbart@nginx.com
1831793Svbart@nginx.com    *) Bugfix: Ruby apps with multithreading configured could crash on start
1841793Svbart@nginx.com       under load.
1851793Svbart@nginx.com
1861793Svbart@nginx.com    *) Bugfix: mount points weren't unmounted when the "mount" namespace
1871793Svbart@nginx.com       isolation was used; the bug had appeared in 1.21.0.
1881793Svbart@nginx.com
1891793Svbart@nginx.com    *) Bugfix: the router process could crash while removing or
1901793Svbart@nginx.com       reconfiguring an app that used WebSocket.
1911793Svbart@nginx.com
1921793Svbart@nginx.com    *) Bugfix: a memory leak occurring in the router process when removing
1931793Svbart@nginx.com       or reconfiguring an application; the bug had appeared in 1.19.0.
1941793Svbart@nginx.com
1951722Svbart@nginx.com
1961722Svbart@nginx.comChanges with Unit 1.21.0                                         19 Nov 2020
1971722Svbart@nginx.com
1981722Svbart@nginx.com    *) Change: procfs is mounted by default for all languages when "rootfs"
1991722Svbart@nginx.com       isolation is used.
2001722Svbart@nginx.com
2011722Svbart@nginx.com    *) Change: any characters valid according to RFC 7230 are now allowed in
2021722Svbart@nginx.com       HTTP header field names.
2031722Svbart@nginx.com
2041722Svbart@nginx.com    *) Change: HTTP header fields with underscores ("_") are now discarded
2051722Svbart@nginx.com       from requests by default.
2061722Svbart@nginx.com
2071722Svbart@nginx.com    *) Feature: optional multithreaded request processing for Java, Python,
2081722Svbart@nginx.com       Perl, and Ruby apps.
2091722Svbart@nginx.com
2101722Svbart@nginx.com    *) Feature: regular expressions in route matching patterns.
2111722Svbart@nginx.com
2121722Svbart@nginx.com    *) Feature: compatibility with Python 3.9.
2131722Svbart@nginx.com
2141722Svbart@nginx.com    *) Feature: the Python module now supports ASGI 2.0 legacy applications.
2151722Svbart@nginx.com
2161722Svbart@nginx.com    *) Feature: the "protocol" option in Python applications aids choice
2171722Svbart@nginx.com       between ASGI and WSGI.
2181722Svbart@nginx.com
2191722Svbart@nginx.com    *) Feature: the fastcgi_finish_request() PHP function that finalizes
2201722Svbart@nginx.com       request processing and continues code execution without holding onto
2211722Svbart@nginx.com       the client connection.
2221722Svbart@nginx.com
2231722Svbart@nginx.com    *) Feature: the "discard_unsafe_fields" HTTP option that enables
2241722Svbart@nginx.com       discarding request header fields with irregular (but still valid)
2251722Svbart@nginx.com       characters in the field name.
2261722Svbart@nginx.com
2271722Svbart@nginx.com    *) Feature: the "procfs" and "tmpfs" automount isolation options to
2281722Svbart@nginx.com       disable automatic mounting of eponymous filesystems.
2291722Svbart@nginx.com
2301722Svbart@nginx.com    *) Bugfix: the router process could crash when running Go applications
2311722Svbart@nginx.com       under high load; the bug had appeared in 1.19.0.
2321722Svbart@nginx.com
2331722Svbart@nginx.com    *) Bugfix: some language dependencies could remain mounted after using
2341722Svbart@nginx.com       "rootfs" isolation.
2351722Svbart@nginx.com
2361722Svbart@nginx.com    *) Bugfix: various compatibility issues in Java applications.
2371722Svbart@nginx.com
2381722Svbart@nginx.com    *) Bugfix: the Java module built with the musl C library couldn't run
2391722Svbart@nginx.com       applications that use "rootfs" isolation.
2401722Svbart@nginx.com
2411640Svbart@nginx.com
2421640Svbart@nginx.comChanges with Unit 1.20.0                                         08 Oct 2020
2431640Svbart@nginx.com
2441640Svbart@nginx.com    *) Change: the PHP module is now initialized before chrooting; this
2451640Svbart@nginx.com       enables loading all extensions from the host system.
2461640Svbart@nginx.com
2471640Svbart@nginx.com    *) Change: AVIF and APNG image formats added to the default MIME type
2481640Svbart@nginx.com       list.
2491640Svbart@nginx.com
2501643Svbart@nginx.com    *) Change: functional tests migrated to the pytest framework.
2511643Svbart@nginx.com
2521640Svbart@nginx.com    *) Feature: the Python module now fully supports applications that use
2531640Svbart@nginx.com       the ASGI 3.0 server interface.
2541640Svbart@nginx.com
2551640Svbart@nginx.com    *) Feature: the Python module now has a built-in WebSocket server
2561640Svbart@nginx.com       implementation for applications, compatible with the HTTP & WebSocket
2571640Svbart@nginx.com       ASGI Message Format 2.1 specification.
2581640Svbart@nginx.com
2591640Svbart@nginx.com    *) Feature: automatic mounting of an isolated "/tmp" file system into
2601640Svbart@nginx.com       chrooted application environments.
2611640Svbart@nginx.com
2621640Svbart@nginx.com    *) Feature: the $host variable contains a normalized "Host" request
2631640Svbart@nginx.com       value.
2641640Svbart@nginx.com
2651640Svbart@nginx.com    *) Feature: the "callable" option sets Python application callable
2661640Svbart@nginx.com       names.
2671640Svbart@nginx.com
2681640Svbart@nginx.com    *) Feature: compatibility with PHP 8 RC 1. Thanks to Remi Collet.
2691640Svbart@nginx.com
2701640Svbart@nginx.com    *) Feature: the "automount" option in the "isolation" object allows to
2711640Svbart@nginx.com       turn off the automatic mounting of language module dependencies.
2721640Svbart@nginx.com
2731640Svbart@nginx.com    *) Bugfix: "pass"-ing requests to upstreams from a route was broken; the
2741640Svbart@nginx.com       bug had appeared in 1.19.0. Thanks to 洪志道 (Hong Zhi Dao) for
2751640Svbart@nginx.com       discovering and fixing it.
2761640Svbart@nginx.com
2771640Svbart@nginx.com    *) Bugfix: the router process could crash during reconfiguration.
2781640Svbart@nginx.com
2791640Svbart@nginx.com    *) Bugfix: a memory leak occurring in the router process; the bug had
2801640Svbart@nginx.com       appeared in 1.18.0.
2811640Svbart@nginx.com
2821640Svbart@nginx.com    *) Bugfix: the "!" (non-empty) pattern was matched incorrectly; the bug
2831640Svbart@nginx.com       had appeared in 1.19.0.
2841640Svbart@nginx.com
2851640Svbart@nginx.com    *) Bugfix: fixed building on platforms without sendfile() support,
2861640Svbart@nginx.com       notably NetBSD; the bug had appeared in 1.16.0.
2871640Svbart@nginx.com
2881570Svbart@nginx.com
2891570Svbart@nginx.comChanges with Unit 1.19.0                                         13 Aug 2020
2901570Svbart@nginx.com
2911570Svbart@nginx.com    *) Feature: reworked IPC between the router process and the applications
2921570Svbart@nginx.com       to lower latencies, increase performance, and improve scalability.
2931570Svbart@nginx.com
2941570Svbart@nginx.com    *) Feature: support for an arbitrary number of wildcards in route
2951570Svbart@nginx.com       matching patterns.
2961570Svbart@nginx.com
2971570Svbart@nginx.com    *) Feature: chunked transfer encoding in proxy responses.
2981570Svbart@nginx.com
2991570Svbart@nginx.com    *) Feature: basic variables support in the "pass" option.
3001570Svbart@nginx.com
3011570Svbart@nginx.com    *) Feature: compatibility with PHP 8 Beta 1. Thanks to Remi Collet.
3021570Svbart@nginx.com
3031570Svbart@nginx.com    *) Bugfix: the router process could crash while passing requests to an
3041570Svbart@nginx.com       application under high load.
3051570Svbart@nginx.com
3061570Svbart@nginx.com    *) Bugfix: a number of language modules failed to build on some systems;
3071570Svbart@nginx.com       the bug had appeared in 1.18.0.
3081570Svbart@nginx.com
3091570Svbart@nginx.com    *) Bugfix: time in error log messages from PHP applications could lag.
3101570Svbart@nginx.com
3111570Svbart@nginx.com    *) Bugfix: reconfiguration requests could hang if an application had
3121570Svbart@nginx.com       failed to start; the bug had appeared in 1.18.0.
3131570Svbart@nginx.com
3141570Svbart@nginx.com    *) Bugfix: memory leak during reconfiguration.
3151570Svbart@nginx.com
3161570Svbart@nginx.com    *) Bugfix: the daemon didn't start without language modules; the bug had
3171570Svbart@nginx.com       appeared in 1.18.0.
3181570Svbart@nginx.com
3191570Svbart@nginx.com    *) Bugfix: the router process could crash at exit.
3201570Svbart@nginx.com
3211570Svbart@nginx.com    *) Bugfix: Node.js applications could crash at exit.
3221570Svbart@nginx.com
3231570Svbart@nginx.com    *) Bugfix: the Ruby module could be linked against a wrong library
3241570Svbart@nginx.com       version.
3251570Svbart@nginx.com
3261491Svbart@nginx.com
3271491Svbart@nginx.comChanges with Unit 1.18.0                                         28 May 2020
3281491Svbart@nginx.com
3291491Svbart@nginx.com    *) Feature: the "rootfs" isolation option for changing root filesystem
3301491Svbart@nginx.com       for an application.
3311491Svbart@nginx.com
3321491Svbart@nginx.com    *) Feature: multiple "targets" in PHP applications.
3331491Svbart@nginx.com
3341491Svbart@nginx.com    *) Feature: support for percent-encoding in the "uri" and "arguments"
3351491Svbart@nginx.com       matching options and in the "pass" option.
3361491Svbart@nginx.com
3371460Svbart@nginx.com
3381460Svbart@nginx.comChanges with Unit 1.17.0                                         16 Apr 2020
3391460Svbart@nginx.com
3401460Svbart@nginx.com    *) Feature: a "return" action with optional "location" for immediate
3411460Svbart@nginx.com       responses and external redirection.
3421460Svbart@nginx.com
3431460Svbart@nginx.com    *) Feature: fractional weights support for upstream servers.
3441460Svbart@nginx.com
3451460Svbart@nginx.com    *) Bugfix: accidental 502 "Bad Gateway" errors might have occurred in
3461460Svbart@nginx.com       applications under high load.
3471460Svbart@nginx.com
3481460Svbart@nginx.com    *) Bugfix: memory leak in the router; the bug had appeared in 1.13.0.
3491460Svbart@nginx.com
3501460Svbart@nginx.com    *) Bugfix: segmentation fault might have occurred in the router process
3511460Svbart@nginx.com       when reaching open connections limit.
3521460Svbart@nginx.com
3531460Svbart@nginx.com    *) Bugfix: "close() failed (9: Bad file descriptor)" alerts might have
3541460Svbart@nginx.com       appeared in the log while processing large request bodies; the bug
3551460Svbart@nginx.com       had appeared in 1.16.0.
3561460Svbart@nginx.com
3571460Svbart@nginx.com    *) Bugfix: existing application processes didn't reopen the log file.
3581460Svbart@nginx.com
3591460Svbart@nginx.com    *) Bugfix: incompatibility with some Node.js applications.
3601460Svbart@nginx.com
3611460Svbart@nginx.com    *) Bugfix: broken build on DragonFly BSD; the bug had appeared in
3621460Svbart@nginx.com       1.16.0.
3631460Svbart@nginx.com
3641404Svbart@nginx.com
3651404Svbart@nginx.comChanges with Unit 1.16.0                                         12 Mar 2020
3661404Svbart@nginx.com
3671404Svbart@nginx.com    *) Feature: basic load-balancing support with round-robin.
3681404Svbart@nginx.com
3691404Svbart@nginx.com    *) Feature: a "fallback" option that performs an alternative action if a
3701404Svbart@nginx.com       request can't be served from the "share" directory.
3711404Svbart@nginx.com
3721404Svbart@nginx.com    *) Feature: reduced memory consumption by dumping large request bodies
3731404Svbart@nginx.com       to disk.
3741404Svbart@nginx.com
3751404Svbart@nginx.com    *) Feature: stripping UTF-8 BOM and JavaScript-style comments from
3761404Svbart@nginx.com       uploaded JSON.
3771404Svbart@nginx.com
3781404Svbart@nginx.com    *) Bugfix: negative address matching in router might work improperly in
3791404Svbart@nginx.com       combination with non-negative patterns.
3801404Svbart@nginx.com
3811404Svbart@nginx.com    *) Bugfix: Java Spring applications failed to run; the bug had appeared
3821404Svbart@nginx.com       in 1.10.0.
3831404Svbart@nginx.com
3841404Svbart@nginx.com    *) Bugfix: PHP 7.4 was broken if it was built with thread safety
3851404Svbart@nginx.com       enabled.
3861404Svbart@nginx.com
3871404Svbart@nginx.com    *) Bugfix: compatibility issues with some Python applications.
3881404Svbart@nginx.com
3891357Svbart@nginx.com
3901357Svbart@nginx.comChanges with Unit 1.15.0                                         06 Feb 2020
3911357Svbart@nginx.com
3921357Svbart@nginx.com    *) Change: extensions of dynamically requested PHP scripts were
3931357Svbart@nginx.com       restricted to ".php".
3941357Svbart@nginx.com
3951357Svbart@nginx.com    *) Feature: compatibility with Ruby 2.7.
3961357Svbart@nginx.com
3971357Svbart@nginx.com    *) Bugfix: segmentation fault might have occurred in the router process
3981357Svbart@nginx.com       with multiple application processes under load; the bug had appeared
3991357Svbart@nginx.com       in 1.14.0.
4001357Svbart@nginx.com
4011357Svbart@nginx.com    *) Bugfix: receiving request body over TLS connection might have
4021357Svbart@nginx.com       stalled.
4031357Svbart@nginx.com
4041330Svbart@nginx.com
4051330Svbart@nginx.comChanges with Unit 1.14.0                                         26 Dec 2019
4061330Svbart@nginx.com
4071330Svbart@nginx.com    *) Change: the Go package import name changed to "unit.nginx.org/go".
4081330Svbart@nginx.com
4091330Svbart@nginx.com    *) Change: Go package now links to libunit instead of including library
4101330Svbart@nginx.com       sources.
4111330Svbart@nginx.com
4121330Svbart@nginx.com    *) Feature: ability to change user and group for isolated applications
4131330Svbart@nginx.com       when Unit daemon runs as an unprivileged user.
4141330Svbart@nginx.com
4151330Svbart@nginx.com    *) Feature: request routing by source and destination addresses and
4161330Svbart@nginx.com       ports.
4171330Svbart@nginx.com
4181330Svbart@nginx.com    *) Bugfix: memory bloat on large responses.
4191330Svbart@nginx.com
4201284Svbart@nginx.com
4211284Svbart@nginx.comChanges with Unit 1.13.0                                         14 Nov 2019
4221284Svbart@nginx.com
4231284Svbart@nginx.com    *) Feature: basic support for HTTP reverse proxying.
4241284Svbart@nginx.com
4251284Svbart@nginx.com    *) Feature: compatibility with Python 3.8.
4261284Svbart@nginx.com
4271284Svbart@nginx.com    *) Bugfix: memory leak in Python application processes when the close
4281284Svbart@nginx.com       handler was used.
4291284Svbart@nginx.com
4301284Svbart@nginx.com    *) Bugfix: threads in Python applications might not work correctly.
4311284Svbart@nginx.com
4321284Svbart@nginx.com    *) Bugfix: Ruby on Rails applications might not work on Ruby 2.6.
4331284Svbart@nginx.com
4341284Svbart@nginx.com    *) Bugfix: backtraces for uncaught exceptions in Python 3 might be
4351284Svbart@nginx.com       logged with significant delays.
4361284Svbart@nginx.com
4371284Svbart@nginx.com    *) Bugfix: explicit setting a namespaces isolation option to false might
4381284Svbart@nginx.com       have enabled it.
4391284Svbart@nginx.com
4401222Svbart@nginx.com
4411222Svbart@nginx.comChanges with Unit 1.12.0                                         03 Oct 2019
4421222Svbart@nginx.com
4431222Svbart@nginx.com    *) Feature: compatibility with PHP 7.4.
4441222Svbart@nginx.com
4451222Svbart@nginx.com    *) Bugfix: descriptors leak on process creation; the bug had appeared in
4461222Svbart@nginx.com       1.11.0.
4471222Svbart@nginx.com
4481222Svbart@nginx.com    *) Bugfix: TLS connection might be closed prematurely while sending
4491222Svbart@nginx.com       response.
4501222Svbart@nginx.com
4511222Svbart@nginx.com    *) Bugfix: segmentation fault might have occurred if an irregular file
4521222Svbart@nginx.com       was requested.
4531222Svbart@nginx.com
4541185Svbart@nginx.com
4551185Svbart@nginx.comChanges with Unit 1.11.0                                         19 Sep 2019
4561185Svbart@nginx.com
4571185Svbart@nginx.com    *) Feature: basic support for serving static files.
4581185Svbart@nginx.com
4591185Svbart@nginx.com    *) Feature: isolation of application processes with Linux namespaces.
4601185Svbart@nginx.com
4611185Svbart@nginx.com    *) Feature: built-in WebSocket server implementation for Java Servlet
4621185Svbart@nginx.com       Containers.
4631185Svbart@nginx.com
4641185Svbart@nginx.com    *) Feature: direct addressing of API configuration options containing
4651185Svbart@nginx.com       slashes "/" using URI encoding (%2F).
4661185Svbart@nginx.com
4671185Svbart@nginx.com    *) Bugfix: segmentation fault might have occurred in Go applications
4681185Svbart@nginx.com       under high load.
4691185Svbart@nginx.com
4701185Svbart@nginx.com    *) Bugfix: WebSocket support was broken if Unit was built with some
4711185Svbart@nginx.com       linkers other than GNU ld (e.g. gold or LLD).
4721185Svbart@nginx.com
4731134Svbart@nginx.com
4741134Svbart@nginx.comChanges with Unit 1.10.0                                         22 Aug 2019
4751134Svbart@nginx.com
4761134Svbart@nginx.com    *) Change: matching of cookies in routes made case sensitive.
4771134Svbart@nginx.com
4781134Svbart@nginx.com    *) Change: decreased log level of common errors when clients close
4791134Svbart@nginx.com       connections.
4801134Svbart@nginx.com
4811134Svbart@nginx.com    *) Change: removed the Perl module's "--include=" ./configure option.
4821134Svbart@nginx.com
4831134Svbart@nginx.com    *) Feature: built-in WebSocket server implementation for Node.js module.
4841134Svbart@nginx.com
4851134Svbart@nginx.com    *) Feature: splitting PATH_INFO from request URI in PHP module.
4861134Svbart@nginx.com
4871134Svbart@nginx.com    *) Feature: request routing by scheme (HTTP or HTTPS).
4881134Svbart@nginx.com
4891134Svbart@nginx.com    *) Feature: support for multipart requests body in Java module.
4901134Svbart@nginx.com
4911134Svbart@nginx.com    *) Feature: improved API compatibility with Node.js 11.10 or later.
4921134Svbart@nginx.com
4931134Svbart@nginx.com    *) Bugfix: reconfiguration failed if "listeners" or "applications"
4941134Svbart@nginx.com       objects were missing.
4951134Svbart@nginx.com
4961134Svbart@nginx.com    *) Bugfix: applying a large configuration might have failed.
4971134Svbart@nginx.com
4981069Svbart@nginx.com
4991069Svbart@nginx.comChanges with Unit 1.9.0                                          30 May 2019
5001069Svbart@nginx.com
5011069Svbart@nginx.com    *) Feature: request routing by arguments, headers, and cookies.
5021069Svbart@nginx.com
5031069Svbart@nginx.com    *) Feature: route matching patterns allow a wildcard in the middle.
5041069Svbart@nginx.com
5051069Svbart@nginx.com    *) Feature: POST operation for appending elements to arrays in
5061069Svbart@nginx.com       configuration.
5071069Svbart@nginx.com
5081069Svbart@nginx.com    *) Feature: support for changing credentials using CAP_SETUID and
5091069Svbart@nginx.com       CAP_SETGID capabilities on Linux without running main process as
5101069Svbart@nginx.com       privileged user.
5111069Svbart@nginx.com
5121069Svbart@nginx.com    *) Bugfix: memory leak in the router process might have happened when a
5131069Svbart@nginx.com       client prematurely closed the connection.
5141069Svbart@nginx.com
5151069Svbart@nginx.com    *) Bugfix: applying a large configuration might have failed.
5161069Svbart@nginx.com
5171069Svbart@nginx.com    *) Bugfix: PUT and DELETE operations on array elements in configuration
5181069Svbart@nginx.com       did not work.
5191069Svbart@nginx.com
5201069Svbart@nginx.com    *) Bugfix: request schema in applications did not reflect TLS
5211069Svbart@nginx.com       connections.
5221069Svbart@nginx.com
5231069Svbart@nginx.com    *) Bugfix: restored compatibility with Node.js applications that use
5241069Svbart@nginx.com       ServerResponse._implicitHeader() function; the bug had appeared in
5251069Svbart@nginx.com       1.7.
5261069Svbart@nginx.com
5271069Svbart@nginx.com    *) Bugfix: various compatibility issues with Node.js applications.
5281069Svbart@nginx.com
529991Svbart@nginx.com
530991Svbart@nginx.comChanges with Unit 1.8.0                                          01 Mar 2019
531991Svbart@nginx.com
532991Svbart@nginx.com    *) Change: now three numbers are always used for versioning: major,
533991Svbart@nginx.com       minor, and patch versions.
534991Svbart@nginx.com
535991Svbart@nginx.com    *) Change: now QUERY_STRING is always defined even if the request does
536991Svbart@nginx.com       not include the query component.
537991Svbart@nginx.com
538991Svbart@nginx.com    *) Feature: basic internal request routing by Host, URI, and method.
539991Svbart@nginx.com
540991Svbart@nginx.com    *) Feature: experimental support for Java Servlet Containers.
541991Svbart@nginx.com
542991Svbart@nginx.com    *) Bugfix: segmentation fault might have occurred in the router process.
543991Svbart@nginx.com
544991Svbart@nginx.com    *) Bugfix: various potential memory leaks.
545991Svbart@nginx.com
546991Svbart@nginx.com    *) Bugfix: TLS connections might have stalled.
547991Svbart@nginx.com
548991Svbart@nginx.com    *) Bugfix: some Perl applications might have failed to send the response
549991Svbart@nginx.com       body.
550991Svbart@nginx.com
551991Svbart@nginx.com    *) Bugfix: some compilers with specific flags might have produced
552991Svbart@nginx.com       non-functioning builds; the bug had appeared in 1.5.
553991Svbart@nginx.com
554991Svbart@nginx.com    *) Bugfix: Node.js package had wrong version number when installed from
555991Svbart@nginx.com       sources.
556991Svbart@nginx.com
557926Svbart@nginx.com
558926Svbart@nginx.comChanges with Unit 1.7.1                                          07 Feb 2019
559926Svbart@nginx.com
560926Svbart@nginx.com    *) Security: a heap memory buffer overflow might have been caused in the
561926Svbart@nginx.com       router process by a specially crafted request, potentially resulting
562926Svbart@nginx.com       in a segmentation fault or other unspecified behavior
563926Svbart@nginx.com       (CVE-2019-7401).
564926Svbart@nginx.com
565926Svbart@nginx.com    *) Bugfix: install of Go module failed without prior building of Unit
566926Svbart@nginx.com       daemon; the bug had appeared in 1.7.
567926Svbart@nginx.com
568886Svbart@nginx.com
569886Svbart@nginx.comChanges with Unit 1.7                                            20 Dec 2018
570886Svbart@nginx.com
571886Svbart@nginx.com    *) Change: now rpath is set in Ruby module only if the library was not
572886Svbart@nginx.com       found in default search paths; this allows to meet packaging
573886Svbart@nginx.com       restrictions on some systems.
574886Svbart@nginx.com
575886Svbart@nginx.com    *) Bugfix: "disable_functions" and "disable_classes" PHP options set via
576886Svbart@nginx.com       Control API did not work.
577886Svbart@nginx.com
578886Svbart@nginx.com    *) Bugfix: Promises on request data in Node.js were not triggered.
579886Svbart@nginx.com
580886Svbart@nginx.com    *) Bugfix: various compatibility issues with Node.js applications.
581886Svbart@nginx.com
582886Svbart@nginx.com    *) Bugfix: a segmentation fault occurred in Node.js module if
583886Svbart@nginx.com       application tried to read request body after request.end() was
584886Svbart@nginx.com       called.
585886Svbart@nginx.com
586886Svbart@nginx.com    *) Bugfix: a segmentation fault occurred in Node.js module if
587886Svbart@nginx.com       application attempted to send header twice.
588886Svbart@nginx.com
589886Svbart@nginx.com    *) Bugfix: names of response header fields in Node.js module were
590886Svbart@nginx.com       erroneously treated as case-sensitive.
591886Svbart@nginx.com
592886Svbart@nginx.com    *) Bugfix: uncatched exceptions in Node.js were not logged.
593886Svbart@nginx.com
594886Svbart@nginx.com    *) Bugfix: global install of Node.js module from sources was broken on
595886Svbart@nginx.com       some systems; the bug had appeared in 1.6.
596886Svbart@nginx.com
597886Svbart@nginx.com    *) Bugfix: traceback for exceptions during initialization of Python
598886Svbart@nginx.com       applications might not be logged.
599886Svbart@nginx.com
600886Svbart@nginx.com    *) Bugfix: PHP module build failed if PHP interpreter was built with
601886Svbart@nginx.com       thread safety enabled.
602886Svbart@nginx.com
603846Svbart@nginx.com
604846Svbart@nginx.comChanges with Unit 1.6                                            15 Nov 2018
605846Svbart@nginx.com
606846Svbart@nginx.com    *) Change: "make install" now installs Node.js module as well if it was
607846Svbart@nginx.com       configured.
608846Svbart@nginx.com
609846Svbart@nginx.com    *) Feature: "--local" ./configure option to install Node.js module
610846Svbart@nginx.com       locally.
611846Svbart@nginx.com
612846Svbart@nginx.com    *) Bugfix: Node.js module might have crashed due to broken reference
613846Svbart@nginx.com       counting.
614846Svbart@nginx.com
615846Svbart@nginx.com    *) Bugfix: asynchronous operations in Node.js might not have worked.
616846Svbart@nginx.com
617846Svbart@nginx.com    *) Bugfix: various compatibility issues with Node.js applications.
618846Svbart@nginx.com
619846Svbart@nginx.com    *) Bugfix: "freed pointer is out of pool" alerts might have appeared in
620846Svbart@nginx.com       log.
621846Svbart@nginx.com
622885Svbart@nginx.com    *) Bugfix: module discovery did not work on 64-bit big-endian systems
623846Svbart@nginx.com       like IBM/S390x.
624846Svbart@nginx.com
625820Svbart@nginx.com
626820Svbart@nginx.comChanges with Unit 1.5                                            25 Oct 2018
627820Svbart@nginx.com
628820Svbart@nginx.com    *) Change: the "type" of application object for Go was changed to
629820Svbart@nginx.com       "external".
630820Svbart@nginx.com
631820Svbart@nginx.com    *) Feature: initial version of Node.js package with basic HTTP
632820Svbart@nginx.com       request-response support.
633820Svbart@nginx.com
634820Svbart@nginx.com    *) Feature: compatibility with LibreSSL.
635820Svbart@nginx.com
636820Svbart@nginx.com    *) Feature: --libdir and --incdir ./configure options to install libunit
637820Svbart@nginx.com       headers and static library.
638820Svbart@nginx.com
639820Svbart@nginx.com    *) Bugfix: connection might be closed prematurely while sending
640820Svbart@nginx.com       response; the bug had appeared in 1.3.
641820Svbart@nginx.com
642820Svbart@nginx.com    *) Bugfix: application processes might have stopped handling requests,
643820Svbart@nginx.com       producing "last message send failed: Resource temporarily
644820Svbart@nginx.com       unavailable" alerts in log; the bug had appeared in 1.4.
645820Svbart@nginx.com
646885Svbart@nginx.com    *) Bugfix: Go applications did not work when Unit was built with musl C
647820Svbart@nginx.com       library.
648820Svbart@nginx.com
649783Svbart@nginx.com
650783Svbart@nginx.comChanges with Unit 1.4                                            20 Sep 2018
651783Svbart@nginx.com
652783Svbart@nginx.com    *) Change: the control API maps the configuration object only at
653783Svbart@nginx.com       "/config/".
654783Svbart@nginx.com
655783Svbart@nginx.com    *) Feature: TLS support for client connections.
656783Svbart@nginx.com
657783Svbart@nginx.com    *) Feature: TLS certificates storage control API.
658783Svbart@nginx.com
659783Svbart@nginx.com    *) Feature: Unit library (libunit) to streamline language module
660783Svbart@nginx.com       integration.
661783Svbart@nginx.com
662783Svbart@nginx.com    *) Feature: "408 Request Timeout" responses while closing HTTP
663783Svbart@nginx.com       keep-alive connections.
664783Svbart@nginx.com
665783Svbart@nginx.com    *) Feature: improvements in OpenBSD support. Thanks to David Carlier.
666783Svbart@nginx.com
667783Svbart@nginx.com    *) Bugfix: a segmentation fault might have occurred after
668783Svbart@nginx.com       reconfiguration.
669783Svbart@nginx.com
670783Svbart@nginx.com    *) Bugfix: building on systems with non-default locale might be broken.
671783Svbart@nginx.com
672783Svbart@nginx.com    *) Bugfix: "header_read_timeout" might not work properly.
673783Svbart@nginx.com
674783Svbart@nginx.com    *) Bugfix: header fields values with non-ASCII bytes might be handled
675783Svbart@nginx.com       incorrectly in Python 3 module.
676783Svbart@nginx.com
677727Svbart@nginx.com
678727Svbart@nginx.comChanges with Unit 1.3                                            13 Jul 2018
679727Svbart@nginx.com
680727Svbart@nginx.com    *) Change: UTF-8 characters are now allowed in request header field
681727Svbart@nginx.com       values.
682727Svbart@nginx.com
683727Svbart@nginx.com    *) Feature: configuration of the request body size limit.
684727Svbart@nginx.com
685727Svbart@nginx.com    *) Feature: configuration of various HTTP connection timeouts.
686727Svbart@nginx.com
687727Svbart@nginx.com    *) Feature: Ruby module now automatically uses Bundler where possible.
688727Svbart@nginx.com
689727Svbart@nginx.com    *) Feature: http.Flusher interface in Go module.
690727Svbart@nginx.com
691727Svbart@nginx.com    *) Bugfix: various issues in HTTP connection errors handling.
692727Svbart@nginx.com
693727Svbart@nginx.com    *) Bugfix: requests with body data might be handled incorrectly in PHP
694727Svbart@nginx.com       module.
695727Svbart@nginx.com
696727Svbart@nginx.com    *) Bugfix: individual PHP configuration options specified via control
697727Svbart@nginx.com       API were reset to previous values after the first request in
698727Svbart@nginx.com       application process.
699727Svbart@nginx.com
700689Svbart@nginx.com
701689Svbart@nginx.comChanges with Unit 1.2                                            07 Jun 2018
702689Svbart@nginx.com
703689Svbart@nginx.com    *) Feature: configuration of environment variables for application
704689Svbart@nginx.com       processes.
705689Svbart@nginx.com
706689Svbart@nginx.com    *) Feature: customization of php.ini path.
707689Svbart@nginx.com
708689Svbart@nginx.com    *) Feature: setting of individual PHP configuration options.
709689Svbart@nginx.com
710689Svbart@nginx.com    *) Feature: configuration of execution arguments for Go applications.
711689Svbart@nginx.com
712689Svbart@nginx.com    *) Bugfix: keep-alive connections might hang after reconfiguration.
713689Svbart@nginx.com
714666Svbart@nginx.com
715666Svbart@nginx.comChanges with Unit 1.1                                            26 Apr 2018
716666Svbart@nginx.com
717666Svbart@nginx.com    *) Bugfix: Python applications that use the write() callable did not
718666Svbart@nginx.com       work.
719666Svbart@nginx.com
720666Svbart@nginx.com    *) Bugfix: virtual environments created with Python 3.3 or above might
721666Svbart@nginx.com       not have worked.
722666Svbart@nginx.com
723666Svbart@nginx.com    *) Bugfix: the request.Read() function in Go applications did not
724666Svbart@nginx.com       produce EOF when the whole body was read.
725666Svbart@nginx.com
726666Svbart@nginx.com    *) Bugfix: a segmentation fault might have occurred while access log
727666Svbart@nginx.com       reopening.
728666Svbart@nginx.com
729666Svbart@nginx.com    *) Bugfix: in parsing of IPv6 control socket addresses.
730666Svbart@nginx.com
731666Svbart@nginx.com    *) Bugfix: loading of application modules was broken on OpenBSD.
732666Svbart@nginx.com
733666Svbart@nginx.com    *) Bugfix: a segmentation fault might have occurred when there were two
734666Svbart@nginx.com       modules with the same type and version; the bug had appeared in 1.0.
735666Svbart@nginx.com
736666Svbart@nginx.com    *) Bugfix: alerts "freed pointer points to non-freeble page" might have
737666Svbart@nginx.com       appeared in log on 32-bit platforms.
738666Svbart@nginx.com
739639Svbart@nginx.com
740639Svbart@nginx.comChanges with Unit 1.0                                            12 Apr 2018
741639Svbart@nginx.com
742639Svbart@nginx.com    *) Change: configuration object moved into "/config/" path.
743639Svbart@nginx.com
744639Svbart@nginx.com    *) Feature: basic access logging.
745639Svbart@nginx.com
746639Svbart@nginx.com    *) Bugfix: 503 error occurred if Go application did not write response
747639Svbart@nginx.com       header or body.
748639Svbart@nginx.com
749639Svbart@nginx.com    *) Bugfix: Ruby applications that use encoding conversions might not
750663Svbart@nginx.com       have worked.
751639Svbart@nginx.com
752639Svbart@nginx.com    *) Bugfix: various stability issues.
753639Svbart@nginx.com
754586Svbart@nginx.com
755586Svbart@nginx.comChanges with Unit 0.7                                            22 Mar 2018
756586Svbart@nginx.com
757586Svbart@nginx.com    *) Feature: Ruby application module.
758586Svbart@nginx.com
759586Svbart@nginx.com    *) Bugfix: in discovering modules.
760586Svbart@nginx.com
761586Svbart@nginx.com    *) Bugfix: various race conditions on reconfiguration and during
762586Svbart@nginx.com       shutting down.
763586Svbart@nginx.com
764586Svbart@nginx.com    *) Bugfix: tabs and trailing spaces were not allowed in header fields
765586Svbart@nginx.com       values.
766586Svbart@nginx.com
767586Svbart@nginx.com    *) Bugfix: a segmentation fault occurred in Python module if
768586Svbart@nginx.com       start_response() was called outside of WSGI callable.
769586Svbart@nginx.com
770663Svbart@nginx.com    *) Bugfix: a segmentation fault might have occurred in PHP module if
771663Svbart@nginx.com       there was an error while initialization.
772586Svbart@nginx.com
773539Svbart@nginx.com
774539Svbart@nginx.comChanges with Unit 0.6                                            09 Feb 2018
775539Svbart@nginx.com
776539Svbart@nginx.com    *) Bugfix: the main process died when the "type" application option
777539Svbart@nginx.com       contained version; the bug had appeared in 0.5.
778539Svbart@nginx.com
779531Svbart@nginx.com
780531Svbart@nginx.comChanges with Unit 0.5                                            08 Feb 2018
781531Svbart@nginx.com
782531Svbart@nginx.com    *) Change: the "workers" application option was removed, the "processes"
783531Svbart@nginx.com       application option should be used instead.
784531Svbart@nginx.com
785531Svbart@nginx.com    *) Feature: the "processes" application option with prefork and dynamic
786531Svbart@nginx.com       process management support.
787531Svbart@nginx.com
788531Svbart@nginx.com    *) Feature: Perl application module.
789531Svbart@nginx.com
790531Svbart@nginx.com    *) Bugfix: in reading client request body; the bug had appeared in 0.3.
791531Svbart@nginx.com
792663Svbart@nginx.com    *) Bugfix: some Python applications might not have worked due to missing
793531Svbart@nginx.com       "wsgi.errors" environ variable.
794531Svbart@nginx.com
795531Svbart@nginx.com    *) Bugfix: HTTP chunked responses might be encoded incorrectly on 32-bit
796531Svbart@nginx.com       platforms.
797531Svbart@nginx.com
798531Svbart@nginx.com    *) Bugfix: infinite looping in HTTP parser.
799531Svbart@nginx.com
800531Svbart@nginx.com    *) Bugfix: segmentation fault in router.
801531Svbart@nginx.com
802469Sigor@sysoev.ru
803469Sigor@sysoev.ruChanges with Unit 0.4                                            15 Jan 2018
804469Sigor@sysoev.ru
805469Sigor@sysoev.ru    *) Feature: compatibility with DragonFly BSD.
806469Sigor@sysoev.ru
807469Sigor@sysoev.ru    *) Feature: "configure php --lib-static" option.
808469Sigor@sysoev.ru
809469Sigor@sysoev.ru    *) Bugfix: HTTP request body was not passed to application; the bug had
810469Sigor@sysoev.ru       appeared in 0.3.
811469Sigor@sysoev.ru
812469Sigor@sysoev.ru    *) Bugfix: HTTP large header buffers allocation and deallocation fixed;
813469Sigor@sysoev.ru       the bug had appeared in 0.3.
814469Sigor@sysoev.ru
815663Svbart@nginx.com    *) Bugfix: some PHP applications might not have worked with relative
816663Svbart@nginx.com       "root" path.
817469Sigor@sysoev.ru
818432Sigor@sysoev.ru
819432Sigor@sysoev.ruChanges with Unit 0.3                                            28 Dec 2017
820432Sigor@sysoev.ru
821432Sigor@sysoev.ru    *) Change: the Go package name changed to "nginx/unit".
822432Sigor@sysoev.ru
823432Sigor@sysoev.ru    *) Change: in the "limits.timeout" application option: application start
824432Sigor@sysoev.ru       time and time in queue now are not accounted.
825432Sigor@sysoev.ru
826432Sigor@sysoev.ru    *) Feature: the "limits.requests" application option.
827432Sigor@sysoev.ru
828432Sigor@sysoev.ru    *) Feature: application request processing latency optimization.
829432Sigor@sysoev.ru
830432Sigor@sysoev.ru    *) Feature: HTTP keep-alive connections support.
831432Sigor@sysoev.ru
832432Sigor@sysoev.ru    *) Feature: the "home" Python virtual environment configuration option.
833432Sigor@sysoev.ru
834432Sigor@sysoev.ru    *) Feature: Python atexit hook support.
835432Sigor@sysoev.ru
836432Sigor@sysoev.ru    *) Feature: various Go package improvements.
837432Sigor@sysoev.ru
838432Sigor@sysoev.ru    *) Bugfix: various crashes fixed.
839432Sigor@sysoev.ru
840286Sigor@sysoev.ru
841370Sigor@sysoev.ruChanges with Unit 0.2                                            19 Oct 2017
842370Sigor@sysoev.ru
843370Sigor@sysoev.ru    *) Feature: configuration persistence.
844370Sigor@sysoev.ru
845370Sigor@sysoev.ru    *) Feature: improved handling of configuration errors.
846370Sigor@sysoev.ru
847370Sigor@sysoev.ru    *) Feature: application "timeout" property.
848370Sigor@sysoev.ru
849370Sigor@sysoev.ru    *) Bugfix: POST request for PHP were handled incorrectly.
850370Sigor@sysoev.ru
851370Sigor@sysoev.ru    *) Bugfix: the router exited abnormally if all listeners had been
852370Sigor@sysoev.ru       deleted.
853370Sigor@sysoev.ru
854370Sigor@sysoev.ru    *) Bugfix: the router crashed under load.
855370Sigor@sysoev.ru
856370Sigor@sysoev.ru    *) Bugfix: memory leak in the router.
857370Sigor@sysoev.ru
858370Sigor@sysoev.ru
859370Sigor@sysoev.ruChanges with Unit 0.1                                            06 Sep 2017
860286Sigor@sysoev.ru
861286Sigor@sysoev.ru    *) First public release.
862286Sigor@sysoev.ru
863