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