xref: /unit/CHANGES (revision 2118:6f079e545a0c)
1*2118Szelenkov@nginx.com
2*2118Szelenkov@nginx.comChanges with Unit 1.27.0                                         02 Jun 2022
3*2118Szelenkov@nginx.com
4*2118Szelenkov@nginx.com    *) Feature: ability to specify a custom index file name when serving
5*2118Szelenkov@nginx.com       static files.
6*2118Szelenkov@nginx.com
7*2118Szelenkov@nginx.com    *) Feature: variables support in the "location" option of the "return"
8*2118Szelenkov@nginx.com       action.
9*2118Szelenkov@nginx.com
10*2118Szelenkov@nginx.com    *) Feature: support empty strings in the "location" option of the
11*2118Szelenkov@nginx.com       "return" action.
12*2118Szelenkov@nginx.com
13*2118Szelenkov@nginx.com    *) Feature: added a new variable, $request_uri, that includes both the
14*2118Szelenkov@nginx.com       path and the query parts as per RFC 3986, sections 3-4.
15*2118Szelenkov@nginx.com
16*2118Szelenkov@nginx.com    *) Feature: Ruby Rack environment parameter "SCRIPT_NAME" support.
17*2118Szelenkov@nginx.com
18*2118Szelenkov@nginx.com    *) Feature: compatibility with GCC 12.
19*2118Szelenkov@nginx.com
20*2118Szelenkov@nginx.com    *) Bugfix: Ruby Sinatra applications don't work without custom logging.
21*2118Szelenkov@nginx.com
22*2118Szelenkov@nginx.com    *) Bugfix: the controller process could crash when a chain of more than
23*2118Szelenkov@nginx.com       four certificates was uploaded.
24*2118Szelenkov@nginx.com
25*2118Szelenkov@nginx.com    *) Bugfix: some Perl applications failed to process the request body,
26*2118Szelenkov@nginx.com       notably with Plack.
27*2118Szelenkov@nginx.com
28*2118Szelenkov@nginx.com    *) Bugfix: some Spring Boot applications failed to start, notably with
29*2118Szelenkov@nginx.com       Grails.
30*2118Szelenkov@nginx.com
31*2118Szelenkov@nginx.com    *) Bugfix: incorrect Python protocol auto detection (ASGI or WSGI) for
32*2118Szelenkov@nginx.com       native callable object, notably with Falcon.
33*2118Szelenkov@nginx.com
34*2118Szelenkov@nginx.com    *) Bugfix: ECMAScript modules did not work with the recent Node.js
35*2118Szelenkov@nginx.com       versions.
36*2118Szelenkov@nginx.com
372045Svbart@nginx.com
382045Svbart@nginx.comChanges with Unit 1.26.1                                         02 Dec 2021
392045Svbart@nginx.com
402045Svbart@nginx.com    *) Bugfix: occasionally, the Unit daemon was unable to fully terminate;
412045Svbart@nginx.com       the bug had appeared in 1.26.0.
422045Svbart@nginx.com
432045Svbart@nginx.com    *) Bugfix: a prototype process could crash on an application process
442045Svbart@nginx.com       exit; the bug had appeared in 1.26.0.
452045Svbart@nginx.com
462045Svbart@nginx.com    *) Bugfix: the router process crashed on reconfiguration if "access_log"
472045Svbart@nginx.com       was configured without listeners.
482045Svbart@nginx.com
492045Svbart@nginx.com    *) Bugfix: a segmentation fault occurred in the PHP module if chdir() or
502045Svbart@nginx.com       fastcgi_finish_request() was called in the OPcache preloading script.
512045Svbart@nginx.com
522045Svbart@nginx.com    *) Bugfix: fatal errors on DragonFly BSD; the bug had appeared in
532045Svbart@nginx.com       1.26.0.
542045Svbart@nginx.com
552007Svbart@nginx.com
562007Svbart@nginx.comChanges with Unit 1.26.0                                         18 Nov 2021
572007Svbart@nginx.com
582007Svbart@nginx.com    *) Change: the "share" option now specifies the entire path to the files
592007Svbart@nginx.com       it serves, rather than a document root directory to be prepended to
602007Svbart@nginx.com       the request URI.
612007Svbart@nginx.com
622007Svbart@nginx.com    *) Feature: automatic adjustment of existing configurations to the new
632007Svbart@nginx.com       "share" behavior when updating from previous versions.
642007Svbart@nginx.com
652007Svbart@nginx.com    *) Feature: variables support in the "share" option.
662007Svbart@nginx.com
672007Svbart@nginx.com    *) Feature: multiple paths in the "share" option.
682007Svbart@nginx.com
692007Svbart@nginx.com    *) Feature: variables support in the "chroot" option.
702007Svbart@nginx.com
712007Svbart@nginx.com    *) Feature: PHP opcache is shared between application processes.
722007Svbart@nginx.com
732007Svbart@nginx.com    *) Feature: request routing by the query string.
742007Svbart@nginx.com
752007Svbart@nginx.com    *) Bugfix: the router and app processes could crash when the requests
762007Svbart@nginx.com       limit was reached by asynchronous or multithreaded apps.
772007Svbart@nginx.com
782007Svbart@nginx.com    *) Bugfix: established WebSocket connections could stop reading frames
792007Svbart@nginx.com       from the client after the corresponding listener had been
802007Svbart@nginx.com       reconfigured.
812007Svbart@nginx.com
822007Svbart@nginx.com    *) Bugfix: fixed building with glibc 2.34, notably Fedora 35.
832007Svbart@nginx.com
841945Svbart@nginx.com
851945Svbart@nginx.comChanges with Unit 1.25.0                                         19 Aug 2021
861945Svbart@nginx.com
871945Svbart@nginx.com    *) Feature: client IP address replacement from a specified HTTP header
881945Svbart@nginx.com       field.
891945Svbart@nginx.com
901945Svbart@nginx.com    *) Feature: TLS sessions cache.
911945Svbart@nginx.com
921945Svbart@nginx.com    *) Feature: TLS session tickets.
931945Svbart@nginx.com
941945Svbart@nginx.com    *) Feature: application restart control.
951945Svbart@nginx.com
961945Svbart@nginx.com    *) Feature: process and thread lifecycle hooks in Ruby.
971945Svbart@nginx.com
981945Svbart@nginx.com    *) Bugfix: the router process could crash on TLS connection open when
991945Svbart@nginx.com       multiple listeners with TLS certificates were configured; the bug had
1001945Svbart@nginx.com       appeared in 1.23.0.
1011945Svbart@nginx.com
1021945Svbart@nginx.com    *) Bugfix: TLS connections were rejected for configurations with
1031945Svbart@nginx.com       multiple certificate bundles in a listener if the client did not use
1041945Svbart@nginx.com       SNI.
1051945Svbart@nginx.com
1062007Svbart@nginx.com    *) Bugfix: the router process could crash with frequent multithreaded
1071945Svbart@nginx.com       application reconfiguration.
1081945Svbart@nginx.com
1091945Svbart@nginx.com    *) Bugfix: compatibility issues with some Python ASGI apps, notably
1101945Svbart@nginx.com       based on the Starlette framework.
1111945Svbart@nginx.com
1121945Svbart@nginx.com    *) Bugfix: a descriptor and memory leak occurred in the router process
1131945Svbart@nginx.com       when an app process stopped or crashed.
1141945Svbart@nginx.com
1151945Svbart@nginx.com    *) Bugfix: the controller or router process could crash if the
1161945Svbart@nginx.com       configuration contained a full-form IPv6 in a listener address.
1171945Svbart@nginx.com
1181945Svbart@nginx.com    *) Bugfix: the router process crashed when a request was passed to an
1191945Svbart@nginx.com       empty "routes" or "upstreams" using a variable "pass" option.
1201945Svbart@nginx.com
1211945Svbart@nginx.com    *) Bugfix: the router process crashed while matching a request to an
1221945Svbart@nginx.com       empty array of source or destination address patterns.
1231945Svbart@nginx.com
1241891Svbart@nginx.com
1251891Svbart@nginx.comChanges with Unit 1.24.0                                         27 May 2021
1261891Svbart@nginx.com
1271891Svbart@nginx.com    *) Change: PHP added to the default MIME type list.
1281891Svbart@nginx.com
1291891Svbart@nginx.com    *) Feature: arbitrary configuration of TLS connections via OpenSSL
1301891Svbart@nginx.com       commands.
1311891Svbart@nginx.com
1321891Svbart@nginx.com    *) Feature: the ability to limit static file serving by MIME types.
1331891Svbart@nginx.com
1341891Svbart@nginx.com    *) Feature: support for chrooting, rejecting symlinks, and rejecting
1351891Svbart@nginx.com       mount point traversal on a per-request basis when serving static
1361891Svbart@nginx.com       files.
1371891Svbart@nginx.com
1381891Svbart@nginx.com    *) Feature: a loader for automatically overriding the "http" and
1391891Svbart@nginx.com       "websocket" modules in Node.js.
1401891Svbart@nginx.com
1411891Svbart@nginx.com    *) Feature: multiple "targets" in Python applications.
1421891Svbart@nginx.com
1431891Svbart@nginx.com    *) Feature: compatibility with Ruby 3.0.
1441891Svbart@nginx.com
1451891Svbart@nginx.com    *) Bugfix: the router process could crash while closing a TLS
1461891Svbart@nginx.com       connection.
1471891Svbart@nginx.com
1481891Svbart@nginx.com    *) Bugfix: a segmentation fault might have occurred in the PHP module if
1491891Svbart@nginx.com       fastcgi_finish_request() was used with the "auto_globals_jit" option
1501891Svbart@nginx.com       enabled.
1511891Svbart@nginx.com
1521834Svbart@nginx.com
1531834Svbart@nginx.comChanges with Unit 1.23.0                                         25 Mar 2021
1541834Svbart@nginx.com
1551834Svbart@nginx.com    *) Feature: support for multiple certificate bundles on a listener via
1561834Svbart@nginx.com       the Server Name Indication (SNI) TLS extension.
1571834Svbart@nginx.com
1581834Svbart@nginx.com    *) Feature: "--mandir" ./configure option to specify the directory for
1591834Svbart@nginx.com       man page installation.
1601834Svbart@nginx.com
1611834Svbart@nginx.com    *) Bugfix: the router process could crash on premature TLS connection
1621834Svbart@nginx.com       close; the bug had appeared in 1.17.0.
1631834Svbart@nginx.com
1641834Svbart@nginx.com    *) Bugfix: a connection leak occurred on premature TLS connection close;
1651834Svbart@nginx.com       the bug had appeared in 1.6.
1661834Svbart@nginx.com
1671834Svbart@nginx.com    *) Bugfix: a descriptor and memory leak occurred in the router process
1681834Svbart@nginx.com       when processing small WebSocket frames from a client; the bug had
1691834Svbart@nginx.com       appeared in 1.19.0.
1701834Svbart@nginx.com
1711834Svbart@nginx.com    *) Bugfix: a descriptor leak occurred in the router process when
1721834Svbart@nginx.com       removing or reconfiguring an application; the bug had appeared in
1731834Svbart@nginx.com       1.19.0.
1741834Svbart@nginx.com
1751834Svbart@nginx.com    *) Bugfix: persistent storage of certificates might've not worked with
1761834Svbart@nginx.com       some filesystems in Linux, and all uploaded certificate bundles were
1771834Svbart@nginx.com       forgotten after restart.
1781834Svbart@nginx.com
1791834Svbart@nginx.com    *) Bugfix: the controller process could crash while requesting
1801834Svbart@nginx.com       information about a certificate with a non-DNS SAN entry.
1811834Svbart@nginx.com
1821834Svbart@nginx.com    *) Bugfix: the controller process could crash on manipulations with a
1831834Svbart@nginx.com       certificate containing a SAN and no standard name attributes in
1841834Svbart@nginx.com       subject or issuer.
1851834Svbart@nginx.com
1861834Svbart@nginx.com    *) Bugfix: the Ruby module didn't respect the user locale for defaults
1871834Svbart@nginx.com       in the Encoding class.
1881834Svbart@nginx.com
1891834Svbart@nginx.com    *) Bugfix: the PHP 5 module failed to build with thread safety enabled;
1901834Svbart@nginx.com       the bug had appeared in 1.22.0.
1911834Svbart@nginx.com
1921793Svbart@nginx.com
1931793Svbart@nginx.comChanges with Unit 1.22.0                                         04 Feb 2021
1941793Svbart@nginx.com
1951793Svbart@nginx.com    *) Feature: the ServerRequest and ServerResponse objects of Node.js
1961793Svbart@nginx.com       module are now compliant with Stream API.
1971793Svbart@nginx.com
1981793Svbart@nginx.com    *) Feature: support for specifying multiple directories in the "path"
1991793Svbart@nginx.com       option of Python apps.
2001793Svbart@nginx.com
2011793Svbart@nginx.com    *) Bugfix: a memory leak occurred in the router process when serving
2021793Svbart@nginx.com       files larger than 128K; the bug had appeared in 1.13.0.
2031793Svbart@nginx.com
2041793Svbart@nginx.com    *) Bugfix: apps could stop processing new requests under high load; the
2051793Svbart@nginx.com       bug had appeared in 1.19.0.
2061793Svbart@nginx.com
2071793Svbart@nginx.com    *) Bugfix: app processes could terminate unexpectedly under high load;
2081793Svbart@nginx.com       the bug had appeared in 1.19.0.
2091793Svbart@nginx.com
2101793Svbart@nginx.com    *) Bugfix: invalid HTTP responses were generated for some unusual status
2111793Svbart@nginx.com       codes.
2121793Svbart@nginx.com
2131793Svbart@nginx.com    *) Bugfix: the PHP_AUTH_USER, PHP_AUTH_PW, and PHP_AUTH_DIGEST server
2141793Svbart@nginx.com       variables were missing in the PHP module.
2151793Svbart@nginx.com
2161793Svbart@nginx.com    *) Bugfix: the router process could crash with multithreaded apps under
2171793Svbart@nginx.com       high load.
2181793Svbart@nginx.com
2191793Svbart@nginx.com    *) Bugfix: Ruby apps with multithreading configured could crash on start
2201793Svbart@nginx.com       under load.
2211793Svbart@nginx.com
2221793Svbart@nginx.com    *) Bugfix: mount points weren't unmounted when the "mount" namespace
2231793Svbart@nginx.com       isolation was used; the bug had appeared in 1.21.0.
2241793Svbart@nginx.com
2251793Svbart@nginx.com    *) Bugfix: the router process could crash while removing or
2261793Svbart@nginx.com       reconfiguring an app that used WebSocket.
2271793Svbart@nginx.com
2281793Svbart@nginx.com    *) Bugfix: a memory leak occurring in the router process when removing
2291793Svbart@nginx.com       or reconfiguring an application; the bug had appeared in 1.19.0.
2301793Svbart@nginx.com
2311722Svbart@nginx.com
2321722Svbart@nginx.comChanges with Unit 1.21.0                                         19 Nov 2020
2331722Svbart@nginx.com
2341722Svbart@nginx.com    *) Change: procfs is mounted by default for all languages when "rootfs"
2351722Svbart@nginx.com       isolation is used.
2361722Svbart@nginx.com
2371722Svbart@nginx.com    *) Change: any characters valid according to RFC 7230 are now allowed in
2381722Svbart@nginx.com       HTTP header field names.
2391722Svbart@nginx.com
2401722Svbart@nginx.com    *) Change: HTTP header fields with underscores ("_") are now discarded
2411722Svbart@nginx.com       from requests by default.
2421722Svbart@nginx.com
2431722Svbart@nginx.com    *) Feature: optional multithreaded request processing for Java, Python,
2441722Svbart@nginx.com       Perl, and Ruby apps.
2451722Svbart@nginx.com
2461722Svbart@nginx.com    *) Feature: regular expressions in route matching patterns.
2471722Svbart@nginx.com
2481722Svbart@nginx.com    *) Feature: compatibility with Python 3.9.
2491722Svbart@nginx.com
2501722Svbart@nginx.com    *) Feature: the Python module now supports ASGI 2.0 legacy applications.
2511722Svbart@nginx.com
2521722Svbart@nginx.com    *) Feature: the "protocol" option in Python applications aids choice
2531722Svbart@nginx.com       between ASGI and WSGI.
2541722Svbart@nginx.com
2551722Svbart@nginx.com    *) Feature: the fastcgi_finish_request() PHP function that finalizes
2561722Svbart@nginx.com       request processing and continues code execution without holding onto
2571722Svbart@nginx.com       the client connection.
2581722Svbart@nginx.com
2591722Svbart@nginx.com    *) Feature: the "discard_unsafe_fields" HTTP option that enables
2601722Svbart@nginx.com       discarding request header fields with irregular (but still valid)
2611722Svbart@nginx.com       characters in the field name.
2621722Svbart@nginx.com
2631722Svbart@nginx.com    *) Feature: the "procfs" and "tmpfs" automount isolation options to
2641722Svbart@nginx.com       disable automatic mounting of eponymous filesystems.
2651722Svbart@nginx.com
2661722Svbart@nginx.com    *) Bugfix: the router process could crash when running Go applications
2671722Svbart@nginx.com       under high load; the bug had appeared in 1.19.0.
2681722Svbart@nginx.com
2691722Svbart@nginx.com    *) Bugfix: some language dependencies could remain mounted after using
2701722Svbart@nginx.com       "rootfs" isolation.
2711722Svbart@nginx.com
2721722Svbart@nginx.com    *) Bugfix: various compatibility issues in Java applications.
2731722Svbart@nginx.com
2741722Svbart@nginx.com    *) Bugfix: the Java module built with the musl C library couldn't run
2751722Svbart@nginx.com       applications that use "rootfs" isolation.
2761722Svbart@nginx.com
2771640Svbart@nginx.com
2781640Svbart@nginx.comChanges with Unit 1.20.0                                         08 Oct 2020
2791640Svbart@nginx.com
2801640Svbart@nginx.com    *) Change: the PHP module is now initialized before chrooting; this
2811640Svbart@nginx.com       enables loading all extensions from the host system.
2821640Svbart@nginx.com
2831640Svbart@nginx.com    *) Change: AVIF and APNG image formats added to the default MIME type
2841640Svbart@nginx.com       list.
2851640Svbart@nginx.com
2861643Svbart@nginx.com    *) Change: functional tests migrated to the pytest framework.
2871643Svbart@nginx.com
2881640Svbart@nginx.com    *) Feature: the Python module now fully supports applications that use
2891640Svbart@nginx.com       the ASGI 3.0 server interface.
2901640Svbart@nginx.com
2911640Svbart@nginx.com    *) Feature: the Python module now has a built-in WebSocket server
2921640Svbart@nginx.com       implementation for applications, compatible with the HTTP & WebSocket
2931640Svbart@nginx.com       ASGI Message Format 2.1 specification.
2941640Svbart@nginx.com
2951640Svbart@nginx.com    *) Feature: automatic mounting of an isolated "/tmp" file system into
2961640Svbart@nginx.com       chrooted application environments.
2971640Svbart@nginx.com
2981640Svbart@nginx.com    *) Feature: the $host variable contains a normalized "Host" request
2991640Svbart@nginx.com       value.
3001640Svbart@nginx.com
3011640Svbart@nginx.com    *) Feature: the "callable" option sets Python application callable
3021640Svbart@nginx.com       names.
3031640Svbart@nginx.com
3041640Svbart@nginx.com    *) Feature: compatibility with PHP 8 RC 1. Thanks to Remi Collet.
3051640Svbart@nginx.com
3061640Svbart@nginx.com    *) Feature: the "automount" option in the "isolation" object allows to
3071640Svbart@nginx.com       turn off the automatic mounting of language module dependencies.
3081640Svbart@nginx.com
3091640Svbart@nginx.com    *) Bugfix: "pass"-ing requests to upstreams from a route was broken; the
3101640Svbart@nginx.com       bug had appeared in 1.19.0. Thanks to 洪志道 (Hong Zhi Dao) for
3111640Svbart@nginx.com       discovering and fixing it.
3121640Svbart@nginx.com
3131640Svbart@nginx.com    *) Bugfix: the router process could crash during reconfiguration.
3141640Svbart@nginx.com
3151640Svbart@nginx.com    *) Bugfix: a memory leak occurring in the router process; the bug had
3161640Svbart@nginx.com       appeared in 1.18.0.
3171640Svbart@nginx.com
3181640Svbart@nginx.com    *) Bugfix: the "!" (non-empty) pattern was matched incorrectly; the bug
3191640Svbart@nginx.com       had appeared in 1.19.0.
3201640Svbart@nginx.com
3211640Svbart@nginx.com    *) Bugfix: fixed building on platforms without sendfile() support,
3221640Svbart@nginx.com       notably NetBSD; the bug had appeared in 1.16.0.
3231640Svbart@nginx.com
3241570Svbart@nginx.com
3251570Svbart@nginx.comChanges with Unit 1.19.0                                         13 Aug 2020
3261570Svbart@nginx.com
3271570Svbart@nginx.com    *) Feature: reworked IPC between the router process and the applications
3281570Svbart@nginx.com       to lower latencies, increase performance, and improve scalability.
3291570Svbart@nginx.com
3301570Svbart@nginx.com    *) Feature: support for an arbitrary number of wildcards in route
3311570Svbart@nginx.com       matching patterns.
3321570Svbart@nginx.com
3331570Svbart@nginx.com    *) Feature: chunked transfer encoding in proxy responses.
3341570Svbart@nginx.com
3351570Svbart@nginx.com    *) Feature: basic variables support in the "pass" option.
3361570Svbart@nginx.com
3371570Svbart@nginx.com    *) Feature: compatibility with PHP 8 Beta 1. Thanks to Remi Collet.
3381570Svbart@nginx.com
3391570Svbart@nginx.com    *) Bugfix: the router process could crash while passing requests to an
3401570Svbart@nginx.com       application under high load.
3411570Svbart@nginx.com
3421570Svbart@nginx.com    *) Bugfix: a number of language modules failed to build on some systems;
3431570Svbart@nginx.com       the bug had appeared in 1.18.0.
3441570Svbart@nginx.com
3451570Svbart@nginx.com    *) Bugfix: time in error log messages from PHP applications could lag.
3461570Svbart@nginx.com
3471570Svbart@nginx.com    *) Bugfix: reconfiguration requests could hang if an application had
3481570Svbart@nginx.com       failed to start; the bug had appeared in 1.18.0.
3491570Svbart@nginx.com
3501570Svbart@nginx.com    *) Bugfix: memory leak during reconfiguration.
3511570Svbart@nginx.com
3521570Svbart@nginx.com    *) Bugfix: the daemon didn't start without language modules; the bug had
3531570Svbart@nginx.com       appeared in 1.18.0.
3541570Svbart@nginx.com
3551570Svbart@nginx.com    *) Bugfix: the router process could crash at exit.
3561570Svbart@nginx.com
3571570Svbart@nginx.com    *) Bugfix: Node.js applications could crash at exit.
3581570Svbart@nginx.com
3591570Svbart@nginx.com    *) Bugfix: the Ruby module could be linked against a wrong library
3601570Svbart@nginx.com       version.
3611570Svbart@nginx.com
3621491Svbart@nginx.com
3631491Svbart@nginx.comChanges with Unit 1.18.0                                         28 May 2020
3641491Svbart@nginx.com
3651491Svbart@nginx.com    *) Feature: the "rootfs" isolation option for changing root filesystem
3661491Svbart@nginx.com       for an application.
3671491Svbart@nginx.com
3681491Svbart@nginx.com    *) Feature: multiple "targets" in PHP applications.
3691491Svbart@nginx.com
3701491Svbart@nginx.com    *) Feature: support for percent-encoding in the "uri" and "arguments"
3711491Svbart@nginx.com       matching options and in the "pass" option.
3721491Svbart@nginx.com
3731460Svbart@nginx.com
3741460Svbart@nginx.comChanges with Unit 1.17.0                                         16 Apr 2020
3751460Svbart@nginx.com
3761460Svbart@nginx.com    *) Feature: a "return" action with optional "location" for immediate
3771460Svbart@nginx.com       responses and external redirection.
3781460Svbart@nginx.com
3791460Svbart@nginx.com    *) Feature: fractional weights support for upstream servers.
3801460Svbart@nginx.com
3811460Svbart@nginx.com    *) Bugfix: accidental 502 "Bad Gateway" errors might have occurred in
3821460Svbart@nginx.com       applications under high load.
3831460Svbart@nginx.com
3841460Svbart@nginx.com    *) Bugfix: memory leak in the router; the bug had appeared in 1.13.0.
3851460Svbart@nginx.com
3861460Svbart@nginx.com    *) Bugfix: segmentation fault might have occurred in the router process
3871460Svbart@nginx.com       when reaching open connections limit.
3881460Svbart@nginx.com
3891460Svbart@nginx.com    *) Bugfix: "close() failed (9: Bad file descriptor)" alerts might have
3901460Svbart@nginx.com       appeared in the log while processing large request bodies; the bug
3911460Svbart@nginx.com       had appeared in 1.16.0.
3921460Svbart@nginx.com
3931460Svbart@nginx.com    *) Bugfix: existing application processes didn't reopen the log file.
3941460Svbart@nginx.com
3951460Svbart@nginx.com    *) Bugfix: incompatibility with some Node.js applications.
3961460Svbart@nginx.com
3971460Svbart@nginx.com    *) Bugfix: broken build on DragonFly BSD; the bug had appeared in
3981460Svbart@nginx.com       1.16.0.
3991460Svbart@nginx.com
4001404Svbart@nginx.com
4011404Svbart@nginx.comChanges with Unit 1.16.0                                         12 Mar 2020
4021404Svbart@nginx.com
4031404Svbart@nginx.com    *) Feature: basic load-balancing support with round-robin.
4041404Svbart@nginx.com
4051404Svbart@nginx.com    *) Feature: a "fallback" option that performs an alternative action if a
4061404Svbart@nginx.com       request can't be served from the "share" directory.
4071404Svbart@nginx.com
4081404Svbart@nginx.com    *) Feature: reduced memory consumption by dumping large request bodies
4091404Svbart@nginx.com       to disk.
4101404Svbart@nginx.com
4111404Svbart@nginx.com    *) Feature: stripping UTF-8 BOM and JavaScript-style comments from
4121404Svbart@nginx.com       uploaded JSON.
4131404Svbart@nginx.com
4141404Svbart@nginx.com    *) Bugfix: negative address matching in router might work improperly in
4151404Svbart@nginx.com       combination with non-negative patterns.
4161404Svbart@nginx.com
4171404Svbart@nginx.com    *) Bugfix: Java Spring applications failed to run; the bug had appeared
4181404Svbart@nginx.com       in 1.10.0.
4191404Svbart@nginx.com
4201404Svbart@nginx.com    *) Bugfix: PHP 7.4 was broken if it was built with thread safety
4211404Svbart@nginx.com       enabled.
4221404Svbart@nginx.com
4231404Svbart@nginx.com    *) Bugfix: compatibility issues with some Python applications.
4241404Svbart@nginx.com
4251357Svbart@nginx.com
4261357Svbart@nginx.comChanges with Unit 1.15.0                                         06 Feb 2020
4271357Svbart@nginx.com
4281357Svbart@nginx.com    *) Change: extensions of dynamically requested PHP scripts were
4291357Svbart@nginx.com       restricted to ".php".
4301357Svbart@nginx.com
4311357Svbart@nginx.com    *) Feature: compatibility with Ruby 2.7.
4321357Svbart@nginx.com
4331357Svbart@nginx.com    *) Bugfix: segmentation fault might have occurred in the router process
4341357Svbart@nginx.com       with multiple application processes under load; the bug had appeared
4351357Svbart@nginx.com       in 1.14.0.
4361357Svbart@nginx.com
4371357Svbart@nginx.com    *) Bugfix: receiving request body over TLS connection might have
4381357Svbart@nginx.com       stalled.
4391357Svbart@nginx.com
4401330Svbart@nginx.com
4411330Svbart@nginx.comChanges with Unit 1.14.0                                         26 Dec 2019
4421330Svbart@nginx.com
4431330Svbart@nginx.com    *) Change: the Go package import name changed to "unit.nginx.org/go".
4441330Svbart@nginx.com
4451330Svbart@nginx.com    *) Change: Go package now links to libunit instead of including library
4461330Svbart@nginx.com       sources.
4471330Svbart@nginx.com
4481330Svbart@nginx.com    *) Feature: ability to change user and group for isolated applications
4491330Svbart@nginx.com       when Unit daemon runs as an unprivileged user.
4501330Svbart@nginx.com
4511330Svbart@nginx.com    *) Feature: request routing by source and destination addresses and
4521330Svbart@nginx.com       ports.
4531330Svbart@nginx.com
4541330Svbart@nginx.com    *) Bugfix: memory bloat on large responses.
4551330Svbart@nginx.com
4561284Svbart@nginx.com
4571284Svbart@nginx.comChanges with Unit 1.13.0                                         14 Nov 2019
4581284Svbart@nginx.com
4591284Svbart@nginx.com    *) Feature: basic support for HTTP reverse proxying.
4601284Svbart@nginx.com
4611284Svbart@nginx.com    *) Feature: compatibility with Python 3.8.
4621284Svbart@nginx.com
4631284Svbart@nginx.com    *) Bugfix: memory leak in Python application processes when the close
4641284Svbart@nginx.com       handler was used.
4651284Svbart@nginx.com
4661284Svbart@nginx.com    *) Bugfix: threads in Python applications might not work correctly.
4671284Svbart@nginx.com
4681284Svbart@nginx.com    *) Bugfix: Ruby on Rails applications might not work on Ruby 2.6.
4691284Svbart@nginx.com
4701284Svbart@nginx.com    *) Bugfix: backtraces for uncaught exceptions in Python 3 might be
4711284Svbart@nginx.com       logged with significant delays.
4721284Svbart@nginx.com
4731284Svbart@nginx.com    *) Bugfix: explicit setting a namespaces isolation option to false might
4741284Svbart@nginx.com       have enabled it.
4751284Svbart@nginx.com
4761222Svbart@nginx.com
4771222Svbart@nginx.comChanges with Unit 1.12.0                                         03 Oct 2019
4781222Svbart@nginx.com
4791222Svbart@nginx.com    *) Feature: compatibility with PHP 7.4.
4801222Svbart@nginx.com
4811222Svbart@nginx.com    *) Bugfix: descriptors leak on process creation; the bug had appeared in
4821222Svbart@nginx.com       1.11.0.
4831222Svbart@nginx.com
4841222Svbart@nginx.com    *) Bugfix: TLS connection might be closed prematurely while sending
4851222Svbart@nginx.com       response.
4861222Svbart@nginx.com
4871222Svbart@nginx.com    *) Bugfix: segmentation fault might have occurred if an irregular file
4881222Svbart@nginx.com       was requested.
4891222Svbart@nginx.com
4901185Svbart@nginx.com
4911185Svbart@nginx.comChanges with Unit 1.11.0                                         19 Sep 2019
4921185Svbart@nginx.com
4931185Svbart@nginx.com    *) Feature: basic support for serving static files.
4941185Svbart@nginx.com
4951185Svbart@nginx.com    *) Feature: isolation of application processes with Linux namespaces.
4961185Svbart@nginx.com
4971185Svbart@nginx.com    *) Feature: built-in WebSocket server implementation for Java Servlet
4981185Svbart@nginx.com       Containers.
4991185Svbart@nginx.com
5001185Svbart@nginx.com    *) Feature: direct addressing of API configuration options containing
5011185Svbart@nginx.com       slashes "/" using URI encoding (%2F).
5021185Svbart@nginx.com
5031185Svbart@nginx.com    *) Bugfix: segmentation fault might have occurred in Go applications
5041185Svbart@nginx.com       under high load.
5051185Svbart@nginx.com
5061185Svbart@nginx.com    *) Bugfix: WebSocket support was broken if Unit was built with some
5071185Svbart@nginx.com       linkers other than GNU ld (e.g. gold or LLD).
5081185Svbart@nginx.com
5091134Svbart@nginx.com
5101134Svbart@nginx.comChanges with Unit 1.10.0                                         22 Aug 2019
5111134Svbart@nginx.com
5121134Svbart@nginx.com    *) Change: matching of cookies in routes made case sensitive.
5131134Svbart@nginx.com
5141134Svbart@nginx.com    *) Change: decreased log level of common errors when clients close
5151134Svbart@nginx.com       connections.
5161134Svbart@nginx.com
5171134Svbart@nginx.com    *) Change: removed the Perl module's "--include=" ./configure option.
5181134Svbart@nginx.com
5191134Svbart@nginx.com    *) Feature: built-in WebSocket server implementation for Node.js module.
5201134Svbart@nginx.com
5211134Svbart@nginx.com    *) Feature: splitting PATH_INFO from request URI in PHP module.
5221134Svbart@nginx.com
5231134Svbart@nginx.com    *) Feature: request routing by scheme (HTTP or HTTPS).
5241134Svbart@nginx.com
5251134Svbart@nginx.com    *) Feature: support for multipart requests body in Java module.
5261134Svbart@nginx.com
5271134Svbart@nginx.com    *) Feature: improved API compatibility with Node.js 11.10 or later.
5281134Svbart@nginx.com
5291134Svbart@nginx.com    *) Bugfix: reconfiguration failed if "listeners" or "applications"
5301134Svbart@nginx.com       objects were missing.
5311134Svbart@nginx.com
5321134Svbart@nginx.com    *) Bugfix: applying a large configuration might have failed.
5331134Svbart@nginx.com
5341069Svbart@nginx.com
5351069Svbart@nginx.comChanges with Unit 1.9.0                                          30 May 2019
5361069Svbart@nginx.com
5371069Svbart@nginx.com    *) Feature: request routing by arguments, headers, and cookies.
5381069Svbart@nginx.com
5391069Svbart@nginx.com    *) Feature: route matching patterns allow a wildcard in the middle.
5401069Svbart@nginx.com
5411069Svbart@nginx.com    *) Feature: POST operation for appending elements to arrays in
5421069Svbart@nginx.com       configuration.
5431069Svbart@nginx.com
5441069Svbart@nginx.com    *) Feature: support for changing credentials using CAP_SETUID and
5451069Svbart@nginx.com       CAP_SETGID capabilities on Linux without running main process as
5461069Svbart@nginx.com       privileged user.
5471069Svbart@nginx.com
5481069Svbart@nginx.com    *) Bugfix: memory leak in the router process might have happened when a
5491069Svbart@nginx.com       client prematurely closed the connection.
5501069Svbart@nginx.com
5511069Svbart@nginx.com    *) Bugfix: applying a large configuration might have failed.
5521069Svbart@nginx.com
5531069Svbart@nginx.com    *) Bugfix: PUT and DELETE operations on array elements in configuration
5541069Svbart@nginx.com       did not work.
5551069Svbart@nginx.com
5561069Svbart@nginx.com    *) Bugfix: request schema in applications did not reflect TLS
5571069Svbart@nginx.com       connections.
5581069Svbart@nginx.com
5591069Svbart@nginx.com    *) Bugfix: restored compatibility with Node.js applications that use
5601069Svbart@nginx.com       ServerResponse._implicitHeader() function; the bug had appeared in
5611069Svbart@nginx.com       1.7.
5621069Svbart@nginx.com
5631069Svbart@nginx.com    *) Bugfix: various compatibility issues with Node.js applications.
5641069Svbart@nginx.com
565991Svbart@nginx.com
566991Svbart@nginx.comChanges with Unit 1.8.0                                          01 Mar 2019
567991Svbart@nginx.com
568991Svbart@nginx.com    *) Change: now three numbers are always used for versioning: major,
569991Svbart@nginx.com       minor, and patch versions.
570991Svbart@nginx.com
571991Svbart@nginx.com    *) Change: now QUERY_STRING is always defined even if the request does
572991Svbart@nginx.com       not include the query component.
573991Svbart@nginx.com
574991Svbart@nginx.com    *) Feature: basic internal request routing by Host, URI, and method.
575991Svbart@nginx.com
576991Svbart@nginx.com    *) Feature: experimental support for Java Servlet Containers.
577991Svbart@nginx.com
578991Svbart@nginx.com    *) Bugfix: segmentation fault might have occurred in the router process.
579991Svbart@nginx.com
580991Svbart@nginx.com    *) Bugfix: various potential memory leaks.
581991Svbart@nginx.com
582991Svbart@nginx.com    *) Bugfix: TLS connections might have stalled.
583991Svbart@nginx.com
584991Svbart@nginx.com    *) Bugfix: some Perl applications might have failed to send the response
585991Svbart@nginx.com       body.
586991Svbart@nginx.com
587991Svbart@nginx.com    *) Bugfix: some compilers with specific flags might have produced
588991Svbart@nginx.com       non-functioning builds; the bug had appeared in 1.5.
589991Svbart@nginx.com
590991Svbart@nginx.com    *) Bugfix: Node.js package had wrong version number when installed from
591991Svbart@nginx.com       sources.
592991Svbart@nginx.com
593926Svbart@nginx.com
594926Svbart@nginx.comChanges with Unit 1.7.1                                          07 Feb 2019
595926Svbart@nginx.com
596926Svbart@nginx.com    *) Security: a heap memory buffer overflow might have been caused in the
597926Svbart@nginx.com       router process by a specially crafted request, potentially resulting
598926Svbart@nginx.com       in a segmentation fault or other unspecified behavior
599926Svbart@nginx.com       (CVE-2019-7401).
600926Svbart@nginx.com
601926Svbart@nginx.com    *) Bugfix: install of Go module failed without prior building of Unit
602926Svbart@nginx.com       daemon; the bug had appeared in 1.7.
603926Svbart@nginx.com
604886Svbart@nginx.com
605886Svbart@nginx.comChanges with Unit 1.7                                            20 Dec 2018
606886Svbart@nginx.com
607886Svbart@nginx.com    *) Change: now rpath is set in Ruby module only if the library was not
608886Svbart@nginx.com       found in default search paths; this allows to meet packaging
609886Svbart@nginx.com       restrictions on some systems.
610886Svbart@nginx.com
611886Svbart@nginx.com    *) Bugfix: "disable_functions" and "disable_classes" PHP options set via
612886Svbart@nginx.com       Control API did not work.
613886Svbart@nginx.com
614886Svbart@nginx.com    *) Bugfix: Promises on request data in Node.js were not triggered.
615886Svbart@nginx.com
616886Svbart@nginx.com    *) Bugfix: various compatibility issues with Node.js applications.
617886Svbart@nginx.com
618886Svbart@nginx.com    *) Bugfix: a segmentation fault occurred in Node.js module if
619886Svbart@nginx.com       application tried to read request body after request.end() was
620886Svbart@nginx.com       called.
621886Svbart@nginx.com
622886Svbart@nginx.com    *) Bugfix: a segmentation fault occurred in Node.js module if
623886Svbart@nginx.com       application attempted to send header twice.
624886Svbart@nginx.com
625886Svbart@nginx.com    *) Bugfix: names of response header fields in Node.js module were
626886Svbart@nginx.com       erroneously treated as case-sensitive.
627886Svbart@nginx.com
628886Svbart@nginx.com    *) Bugfix: uncatched exceptions in Node.js were not logged.
629886Svbart@nginx.com
630886Svbart@nginx.com    *) Bugfix: global install of Node.js module from sources was broken on
631886Svbart@nginx.com       some systems; the bug had appeared in 1.6.
632886Svbart@nginx.com
633886Svbart@nginx.com    *) Bugfix: traceback for exceptions during initialization of Python
634886Svbart@nginx.com       applications might not be logged.
635886Svbart@nginx.com
636886Svbart@nginx.com    *) Bugfix: PHP module build failed if PHP interpreter was built with
637886Svbart@nginx.com       thread safety enabled.
638886Svbart@nginx.com
639846Svbart@nginx.com
640846Svbart@nginx.comChanges with Unit 1.6                                            15 Nov 2018
641846Svbart@nginx.com
642846Svbart@nginx.com    *) Change: "make install" now installs Node.js module as well if it was
643846Svbart@nginx.com       configured.
644846Svbart@nginx.com
645846Svbart@nginx.com    *) Feature: "--local" ./configure option to install Node.js module
646846Svbart@nginx.com       locally.
647846Svbart@nginx.com
648846Svbart@nginx.com    *) Bugfix: Node.js module might have crashed due to broken reference
649846Svbart@nginx.com       counting.
650846Svbart@nginx.com
651846Svbart@nginx.com    *) Bugfix: asynchronous operations in Node.js might not have worked.
652846Svbart@nginx.com
653846Svbart@nginx.com    *) Bugfix: various compatibility issues with Node.js applications.
654846Svbart@nginx.com
655846Svbart@nginx.com    *) Bugfix: "freed pointer is out of pool" alerts might have appeared in
656846Svbart@nginx.com       log.
657846Svbart@nginx.com
658885Svbart@nginx.com    *) Bugfix: module discovery did not work on 64-bit big-endian systems
659846Svbart@nginx.com       like IBM/S390x.
660846Svbart@nginx.com
661820Svbart@nginx.com
662820Svbart@nginx.comChanges with Unit 1.5                                            25 Oct 2018
663820Svbart@nginx.com
664820Svbart@nginx.com    *) Change: the "type" of application object for Go was changed to
665820Svbart@nginx.com       "external".
666820Svbart@nginx.com
667820Svbart@nginx.com    *) Feature: initial version of Node.js package with basic HTTP
668820Svbart@nginx.com       request-response support.
669820Svbart@nginx.com
670820Svbart@nginx.com    *) Feature: compatibility with LibreSSL.
671820Svbart@nginx.com
672820Svbart@nginx.com    *) Feature: --libdir and --incdir ./configure options to install libunit
673820Svbart@nginx.com       headers and static library.
674820Svbart@nginx.com
675820Svbart@nginx.com    *) Bugfix: connection might be closed prematurely while sending
676820Svbart@nginx.com       response; the bug had appeared in 1.3.
677820Svbart@nginx.com
678820Svbart@nginx.com    *) Bugfix: application processes might have stopped handling requests,
679820Svbart@nginx.com       producing "last message send failed: Resource temporarily
680820Svbart@nginx.com       unavailable" alerts in log; the bug had appeared in 1.4.
681820Svbart@nginx.com
682885Svbart@nginx.com    *) Bugfix: Go applications did not work when Unit was built with musl C
683820Svbart@nginx.com       library.
684820Svbart@nginx.com
685783Svbart@nginx.com
686783Svbart@nginx.comChanges with Unit 1.4                                            20 Sep 2018
687783Svbart@nginx.com
688783Svbart@nginx.com    *) Change: the control API maps the configuration object only at
689783Svbart@nginx.com       "/config/".
690783Svbart@nginx.com
691783Svbart@nginx.com    *) Feature: TLS support for client connections.
692783Svbart@nginx.com
693783Svbart@nginx.com    *) Feature: TLS certificates storage control API.
694783Svbart@nginx.com
695783Svbart@nginx.com    *) Feature: Unit library (libunit) to streamline language module
696783Svbart@nginx.com       integration.
697783Svbart@nginx.com
698783Svbart@nginx.com    *) Feature: "408 Request Timeout" responses while closing HTTP
699783Svbart@nginx.com       keep-alive connections.
700783Svbart@nginx.com
701783Svbart@nginx.com    *) Feature: improvements in OpenBSD support. Thanks to David Carlier.
702783Svbart@nginx.com
703783Svbart@nginx.com    *) Bugfix: a segmentation fault might have occurred after
704783Svbart@nginx.com       reconfiguration.
705783Svbart@nginx.com
706783Svbart@nginx.com    *) Bugfix: building on systems with non-default locale might be broken.
707783Svbart@nginx.com
708783Svbart@nginx.com    *) Bugfix: "header_read_timeout" might not work properly.
709783Svbart@nginx.com
710783Svbart@nginx.com    *) Bugfix: header fields values with non-ASCII bytes might be handled
711783Svbart@nginx.com       incorrectly in Python 3 module.
712783Svbart@nginx.com
713727Svbart@nginx.com
714727Svbart@nginx.comChanges with Unit 1.3                                            13 Jul 2018
715727Svbart@nginx.com
716727Svbart@nginx.com    *) Change: UTF-8 characters are now allowed in request header field
717727Svbart@nginx.com       values.
718727Svbart@nginx.com
719727Svbart@nginx.com    *) Feature: configuration of the request body size limit.
720727Svbart@nginx.com
721727Svbart@nginx.com    *) Feature: configuration of various HTTP connection timeouts.
722727Svbart@nginx.com
723727Svbart@nginx.com    *) Feature: Ruby module now automatically uses Bundler where possible.
724727Svbart@nginx.com
725727Svbart@nginx.com    *) Feature: http.Flusher interface in Go module.
726727Svbart@nginx.com
727727Svbart@nginx.com    *) Bugfix: various issues in HTTP connection errors handling.
728727Svbart@nginx.com
729727Svbart@nginx.com    *) Bugfix: requests with body data might be handled incorrectly in PHP
730727Svbart@nginx.com       module.
731727Svbart@nginx.com
732727Svbart@nginx.com    *) Bugfix: individual PHP configuration options specified via control
733727Svbart@nginx.com       API were reset to previous values after the first request in
734727Svbart@nginx.com       application process.
735727Svbart@nginx.com
736689Svbart@nginx.com
737689Svbart@nginx.comChanges with Unit 1.2                                            07 Jun 2018
738689Svbart@nginx.com
739689Svbart@nginx.com    *) Feature: configuration of environment variables for application
740689Svbart@nginx.com       processes.
741689Svbart@nginx.com
742689Svbart@nginx.com    *) Feature: customization of php.ini path.
743689Svbart@nginx.com
744689Svbart@nginx.com    *) Feature: setting of individual PHP configuration options.
745689Svbart@nginx.com
746689Svbart@nginx.com    *) Feature: configuration of execution arguments for Go applications.
747689Svbart@nginx.com
748689Svbart@nginx.com    *) Bugfix: keep-alive connections might hang after reconfiguration.
749689Svbart@nginx.com
750666Svbart@nginx.com
751666Svbart@nginx.comChanges with Unit 1.1                                            26 Apr 2018
752666Svbart@nginx.com
753666Svbart@nginx.com    *) Bugfix: Python applications that use the write() callable did not
754666Svbart@nginx.com       work.
755666Svbart@nginx.com
756666Svbart@nginx.com    *) Bugfix: virtual environments created with Python 3.3 or above might
757666Svbart@nginx.com       not have worked.
758666Svbart@nginx.com
759666Svbart@nginx.com    *) Bugfix: the request.Read() function in Go applications did not
760666Svbart@nginx.com       produce EOF when the whole body was read.
761666Svbart@nginx.com
762666Svbart@nginx.com    *) Bugfix: a segmentation fault might have occurred while access log
763666Svbart@nginx.com       reopening.
764666Svbart@nginx.com
765666Svbart@nginx.com    *) Bugfix: in parsing of IPv6 control socket addresses.
766666Svbart@nginx.com
767666Svbart@nginx.com    *) Bugfix: loading of application modules was broken on OpenBSD.
768666Svbart@nginx.com
769666Svbart@nginx.com    *) Bugfix: a segmentation fault might have occurred when there were two
770666Svbart@nginx.com       modules with the same type and version; the bug had appeared in 1.0.
771666Svbart@nginx.com
772666Svbart@nginx.com    *) Bugfix: alerts "freed pointer points to non-freeble page" might have
773666Svbart@nginx.com       appeared in log on 32-bit platforms.
774666Svbart@nginx.com
775639Svbart@nginx.com
776639Svbart@nginx.comChanges with Unit 1.0                                            12 Apr 2018
777639Svbart@nginx.com
778639Svbart@nginx.com    *) Change: configuration object moved into "/config/" path.
779639Svbart@nginx.com
780639Svbart@nginx.com    *) Feature: basic access logging.
781639Svbart@nginx.com
782639Svbart@nginx.com    *) Bugfix: 503 error occurred if Go application did not write response
783639Svbart@nginx.com       header or body.
784639Svbart@nginx.com
785639Svbart@nginx.com    *) Bugfix: Ruby applications that use encoding conversions might not
786663Svbart@nginx.com       have worked.
787639Svbart@nginx.com
788639Svbart@nginx.com    *) Bugfix: various stability issues.
789639Svbart@nginx.com
790586Svbart@nginx.com
791586Svbart@nginx.comChanges with Unit 0.7                                            22 Mar 2018
792586Svbart@nginx.com
793586Svbart@nginx.com    *) Feature: Ruby application module.
794586Svbart@nginx.com
795586Svbart@nginx.com    *) Bugfix: in discovering modules.
796586Svbart@nginx.com
797586Svbart@nginx.com    *) Bugfix: various race conditions on reconfiguration and during
798586Svbart@nginx.com       shutting down.
799586Svbart@nginx.com
800586Svbart@nginx.com    *) Bugfix: tabs and trailing spaces were not allowed in header fields
801586Svbart@nginx.com       values.
802586Svbart@nginx.com
803586Svbart@nginx.com    *) Bugfix: a segmentation fault occurred in Python module if
804586Svbart@nginx.com       start_response() was called outside of WSGI callable.
805586Svbart@nginx.com
806663Svbart@nginx.com    *) Bugfix: a segmentation fault might have occurred in PHP module if
807663Svbart@nginx.com       there was an error while initialization.
808586Svbart@nginx.com
809539Svbart@nginx.com
810539Svbart@nginx.comChanges with Unit 0.6                                            09 Feb 2018
811539Svbart@nginx.com
812539Svbart@nginx.com    *) Bugfix: the main process died when the "type" application option
813539Svbart@nginx.com       contained version; the bug had appeared in 0.5.
814539Svbart@nginx.com
815531Svbart@nginx.com
816531Svbart@nginx.comChanges with Unit 0.5                                            08 Feb 2018
817531Svbart@nginx.com
818531Svbart@nginx.com    *) Change: the "workers" application option was removed, the "processes"
819531Svbart@nginx.com       application option should be used instead.
820531Svbart@nginx.com
821531Svbart@nginx.com    *) Feature: the "processes" application option with prefork and dynamic
822531Svbart@nginx.com       process management support.
823531Svbart@nginx.com
824531Svbart@nginx.com    *) Feature: Perl application module.
825531Svbart@nginx.com
826531Svbart@nginx.com    *) Bugfix: in reading client request body; the bug had appeared in 0.3.
827531Svbart@nginx.com
828663Svbart@nginx.com    *) Bugfix: some Python applications might not have worked due to missing
829531Svbart@nginx.com       "wsgi.errors" environ variable.
830531Svbart@nginx.com
831531Svbart@nginx.com    *) Bugfix: HTTP chunked responses might be encoded incorrectly on 32-bit
832531Svbart@nginx.com       platforms.
833531Svbart@nginx.com
834531Svbart@nginx.com    *) Bugfix: infinite looping in HTTP parser.
835531Svbart@nginx.com
836531Svbart@nginx.com    *) Bugfix: segmentation fault in router.
837531Svbart@nginx.com
838469Sigor@sysoev.ru
839469Sigor@sysoev.ruChanges with Unit 0.4                                            15 Jan 2018
840469Sigor@sysoev.ru
841469Sigor@sysoev.ru    *) Feature: compatibility with DragonFly BSD.
842469Sigor@sysoev.ru
843469Sigor@sysoev.ru    *) Feature: "configure php --lib-static" option.
844469Sigor@sysoev.ru
845469Sigor@sysoev.ru    *) Bugfix: HTTP request body was not passed to application; the bug had
846469Sigor@sysoev.ru       appeared in 0.3.
847469Sigor@sysoev.ru
848469Sigor@sysoev.ru    *) Bugfix: HTTP large header buffers allocation and deallocation fixed;
849469Sigor@sysoev.ru       the bug had appeared in 0.3.
850469Sigor@sysoev.ru
851663Svbart@nginx.com    *) Bugfix: some PHP applications might not have worked with relative
852663Svbart@nginx.com       "root" path.
853469Sigor@sysoev.ru
854432Sigor@sysoev.ru
855432Sigor@sysoev.ruChanges with Unit 0.3                                            28 Dec 2017
856432Sigor@sysoev.ru
857432Sigor@sysoev.ru    *) Change: the Go package name changed to "nginx/unit".
858432Sigor@sysoev.ru
859432Sigor@sysoev.ru    *) Change: in the "limits.timeout" application option: application start
860432Sigor@sysoev.ru       time and time in queue now are not accounted.
861432Sigor@sysoev.ru
862432Sigor@sysoev.ru    *) Feature: the "limits.requests" application option.
863432Sigor@sysoev.ru
864432Sigor@sysoev.ru    *) Feature: application request processing latency optimization.
865432Sigor@sysoev.ru
866432Sigor@sysoev.ru    *) Feature: HTTP keep-alive connections support.
867432Sigor@sysoev.ru
868432Sigor@sysoev.ru    *) Feature: the "home" Python virtual environment configuration option.
869432Sigor@sysoev.ru
870432Sigor@sysoev.ru    *) Feature: Python atexit hook support.
871432Sigor@sysoev.ru
872432Sigor@sysoev.ru    *) Feature: various Go package improvements.
873432Sigor@sysoev.ru
874432Sigor@sysoev.ru    *) Bugfix: various crashes fixed.
875432Sigor@sysoev.ru
876286Sigor@sysoev.ru
877370Sigor@sysoev.ruChanges with Unit 0.2                                            19 Oct 2017
878370Sigor@sysoev.ru
879370Sigor@sysoev.ru    *) Feature: configuration persistence.
880370Sigor@sysoev.ru
881370Sigor@sysoev.ru    *) Feature: improved handling of configuration errors.
882370Sigor@sysoev.ru
883370Sigor@sysoev.ru    *) Feature: application "timeout" property.
884370Sigor@sysoev.ru
885370Sigor@sysoev.ru    *) Bugfix: POST request for PHP were handled incorrectly.
886370Sigor@sysoev.ru
887370Sigor@sysoev.ru    *) Bugfix: the router exited abnormally if all listeners had been
888370Sigor@sysoev.ru       deleted.
889370Sigor@sysoev.ru
890370Sigor@sysoev.ru    *) Bugfix: the router crashed under load.
891370Sigor@sysoev.ru
892370Sigor@sysoev.ru    *) Bugfix: memory leak in the router.
893370Sigor@sysoev.ru
894370Sigor@sysoev.ru
895370Sigor@sysoev.ruChanges with Unit 0.1                                            06 Sep 2017
896286Sigor@sysoev.ru
897286Sigor@sysoev.ru    *) First public release.
898286Sigor@sysoev.ru
899