xref: /unit/CHANGES (revision 1570)
1*1570Svbart@nginx.com
2*1570Svbart@nginx.comChanges with Unit 1.19.0                                         13 Aug 2020
3*1570Svbart@nginx.com
4*1570Svbart@nginx.com    *) Feature: reworked IPC between the router process and the applications
5*1570Svbart@nginx.com       to lower latencies, increase performance, and improve scalability.
6*1570Svbart@nginx.com
7*1570Svbart@nginx.com    *) Feature: support for an arbitrary number of wildcards in route
8*1570Svbart@nginx.com       matching patterns.
9*1570Svbart@nginx.com
10*1570Svbart@nginx.com    *) Feature: chunked transfer encoding in proxy responses.
11*1570Svbart@nginx.com
12*1570Svbart@nginx.com    *) Feature: basic variables support in the "pass" option.
13*1570Svbart@nginx.com
14*1570Svbart@nginx.com    *) Feature: compatibility with PHP 8 Beta 1. Thanks to Remi Collet.
15*1570Svbart@nginx.com
16*1570Svbart@nginx.com    *) Bugfix: the router process could crash while passing requests to an
17*1570Svbart@nginx.com       application under high load.
18*1570Svbart@nginx.com
19*1570Svbart@nginx.com    *) Bugfix: a number of language modules failed to build on some systems;
20*1570Svbart@nginx.com       the bug had appeared in 1.18.0.
21*1570Svbart@nginx.com
22*1570Svbart@nginx.com    *) Bugfix: time in error log messages from PHP applications could lag.
23*1570Svbart@nginx.com
24*1570Svbart@nginx.com    *) Bugfix: reconfiguration requests could hang if an application had
25*1570Svbart@nginx.com       failed to start; the bug had appeared in 1.18.0.
26*1570Svbart@nginx.com
27*1570Svbart@nginx.com    *) Bugfix: memory leak during reconfiguration.
28*1570Svbart@nginx.com
29*1570Svbart@nginx.com    *) Bugfix: the daemon didn't start without language modules; the bug had
30*1570Svbart@nginx.com       appeared in 1.18.0.
31*1570Svbart@nginx.com
32*1570Svbart@nginx.com    *) Bugfix: the router process could crash at exit.
33*1570Svbart@nginx.com
34*1570Svbart@nginx.com    *) Bugfix: Node.js applications could crash at exit.
35*1570Svbart@nginx.com
36*1570Svbart@nginx.com    *) Bugfix: the Ruby module could be linked against a wrong library
37*1570Svbart@nginx.com       version.
38*1570Svbart@nginx.com
391491Svbart@nginx.com
401491Svbart@nginx.comChanges with Unit 1.18.0                                         28 May 2020
411491Svbart@nginx.com
421491Svbart@nginx.com    *) Feature: the "rootfs" isolation option for changing root filesystem
431491Svbart@nginx.com       for an application.
441491Svbart@nginx.com
451491Svbart@nginx.com    *) Feature: multiple "targets" in PHP applications.
461491Svbart@nginx.com
471491Svbart@nginx.com    *) Feature: support for percent-encoding in the "uri" and "arguments"
481491Svbart@nginx.com       matching options and in the "pass" option.
491491Svbart@nginx.com
501460Svbart@nginx.com
511460Svbart@nginx.comChanges with Unit 1.17.0                                         16 Apr 2020
521460Svbart@nginx.com
531460Svbart@nginx.com    *) Feature: a "return" action with optional "location" for immediate
541460Svbart@nginx.com       responses and external redirection.
551460Svbart@nginx.com
561460Svbart@nginx.com    *) Feature: fractional weights support for upstream servers.
571460Svbart@nginx.com
581460Svbart@nginx.com    *) Bugfix: accidental 502 "Bad Gateway" errors might have occurred in
591460Svbart@nginx.com       applications under high load.
601460Svbart@nginx.com
611460Svbart@nginx.com    *) Bugfix: memory leak in the router; the bug had appeared in 1.13.0.
621460Svbart@nginx.com
631460Svbart@nginx.com    *) Bugfix: segmentation fault might have occurred in the router process
641460Svbart@nginx.com       when reaching open connections limit.
651460Svbart@nginx.com
661460Svbart@nginx.com    *) Bugfix: "close() failed (9: Bad file descriptor)" alerts might have
671460Svbart@nginx.com       appeared in the log while processing large request bodies; the bug
681460Svbart@nginx.com       had appeared in 1.16.0.
691460Svbart@nginx.com
701460Svbart@nginx.com    *) Bugfix: existing application processes didn't reopen the log file.
711460Svbart@nginx.com
721460Svbart@nginx.com    *) Bugfix: incompatibility with some Node.js applications.
731460Svbart@nginx.com
741460Svbart@nginx.com    *) Bugfix: broken build on DragonFly BSD; the bug had appeared in
751460Svbart@nginx.com       1.16.0.
761460Svbart@nginx.com
771404Svbart@nginx.com
781404Svbart@nginx.comChanges with Unit 1.16.0                                         12 Mar 2020
791404Svbart@nginx.com
801404Svbart@nginx.com    *) Feature: basic load-balancing support with round-robin.
811404Svbart@nginx.com
821404Svbart@nginx.com    *) Feature: a "fallback" option that performs an alternative action if a
831404Svbart@nginx.com       request can't be served from the "share" directory.
841404Svbart@nginx.com
851404Svbart@nginx.com    *) Feature: reduced memory consumption by dumping large request bodies
861404Svbart@nginx.com       to disk.
871404Svbart@nginx.com
881404Svbart@nginx.com    *) Feature: stripping UTF-8 BOM and JavaScript-style comments from
891404Svbart@nginx.com       uploaded JSON.
901404Svbart@nginx.com
911404Svbart@nginx.com    *) Bugfix: negative address matching in router might work improperly in
921404Svbart@nginx.com       combination with non-negative patterns.
931404Svbart@nginx.com
941404Svbart@nginx.com    *) Bugfix: Java Spring applications failed to run; the bug had appeared
951404Svbart@nginx.com       in 1.10.0.
961404Svbart@nginx.com
971404Svbart@nginx.com    *) Bugfix: PHP 7.4 was broken if it was built with thread safety
981404Svbart@nginx.com       enabled.
991404Svbart@nginx.com
1001404Svbart@nginx.com    *) Bugfix: compatibility issues with some Python applications.
1011404Svbart@nginx.com
1021357Svbart@nginx.com
1031357Svbart@nginx.comChanges with Unit 1.15.0                                         06 Feb 2020
1041357Svbart@nginx.com
1051357Svbart@nginx.com    *) Change: extensions of dynamically requested PHP scripts were
1061357Svbart@nginx.com       restricted to ".php".
1071357Svbart@nginx.com
1081357Svbart@nginx.com    *) Feature: compatibility with Ruby 2.7.
1091357Svbart@nginx.com
1101357Svbart@nginx.com    *) Bugfix: segmentation fault might have occurred in the router process
1111357Svbart@nginx.com       with multiple application processes under load; the bug had appeared
1121357Svbart@nginx.com       in 1.14.0.
1131357Svbart@nginx.com
1141357Svbart@nginx.com    *) Bugfix: receiving request body over TLS connection might have
1151357Svbart@nginx.com       stalled.
1161357Svbart@nginx.com
1171330Svbart@nginx.com
1181330Svbart@nginx.comChanges with Unit 1.14.0                                         26 Dec 2019
1191330Svbart@nginx.com
1201330Svbart@nginx.com    *) Change: the Go package import name changed to "unit.nginx.org/go".
1211330Svbart@nginx.com
1221330Svbart@nginx.com    *) Change: Go package now links to libunit instead of including library
1231330Svbart@nginx.com       sources.
1241330Svbart@nginx.com
1251330Svbart@nginx.com    *) Feature: ability to change user and group for isolated applications
1261330Svbart@nginx.com       when Unit daemon runs as an unprivileged user.
1271330Svbart@nginx.com
1281330Svbart@nginx.com    *) Feature: request routing by source and destination addresses and
1291330Svbart@nginx.com       ports.
1301330Svbart@nginx.com
1311330Svbart@nginx.com    *) Bugfix: memory bloat on large responses.
1321330Svbart@nginx.com
1331284Svbart@nginx.com
1341284Svbart@nginx.comChanges with Unit 1.13.0                                         14 Nov 2019
1351284Svbart@nginx.com
1361284Svbart@nginx.com    *) Feature: basic support for HTTP reverse proxying.
1371284Svbart@nginx.com
1381284Svbart@nginx.com    *) Feature: compatibility with Python 3.8.
1391284Svbart@nginx.com
1401284Svbart@nginx.com    *) Bugfix: memory leak in Python application processes when the close
1411284Svbart@nginx.com       handler was used.
1421284Svbart@nginx.com
1431284Svbart@nginx.com    *) Bugfix: threads in Python applications might not work correctly.
1441284Svbart@nginx.com
1451284Svbart@nginx.com    *) Bugfix: Ruby on Rails applications might not work on Ruby 2.6.
1461284Svbart@nginx.com
1471284Svbart@nginx.com    *) Bugfix: backtraces for uncaught exceptions in Python 3 might be
1481284Svbart@nginx.com       logged with significant delays.
1491284Svbart@nginx.com
1501284Svbart@nginx.com    *) Bugfix: explicit setting a namespaces isolation option to false might
1511284Svbart@nginx.com       have enabled it.
1521284Svbart@nginx.com
1531222Svbart@nginx.com
1541222Svbart@nginx.comChanges with Unit 1.12.0                                         03 Oct 2019
1551222Svbart@nginx.com
1561222Svbart@nginx.com    *) Feature: compatibility with PHP 7.4.
1571222Svbart@nginx.com
1581222Svbart@nginx.com    *) Bugfix: descriptors leak on process creation; the bug had appeared in
1591222Svbart@nginx.com       1.11.0.
1601222Svbart@nginx.com
1611222Svbart@nginx.com    *) Bugfix: TLS connection might be closed prematurely while sending
1621222Svbart@nginx.com       response.
1631222Svbart@nginx.com
1641222Svbart@nginx.com    *) Bugfix: segmentation fault might have occurred if an irregular file
1651222Svbart@nginx.com       was requested.
1661222Svbart@nginx.com
1671185Svbart@nginx.com
1681185Svbart@nginx.comChanges with Unit 1.11.0                                         19 Sep 2019
1691185Svbart@nginx.com
1701185Svbart@nginx.com    *) Feature: basic support for serving static files.
1711185Svbart@nginx.com
1721185Svbart@nginx.com    *) Feature: isolation of application processes with Linux namespaces.
1731185Svbart@nginx.com
1741185Svbart@nginx.com    *) Feature: built-in WebSocket server implementation for Java Servlet
1751185Svbart@nginx.com       Containers.
1761185Svbart@nginx.com
1771185Svbart@nginx.com    *) Feature: direct addressing of API configuration options containing
1781185Svbart@nginx.com       slashes "/" using URI encoding (%2F).
1791185Svbart@nginx.com
1801185Svbart@nginx.com    *) Bugfix: segmentation fault might have occurred in Go applications
1811185Svbart@nginx.com       under high load.
1821185Svbart@nginx.com
1831185Svbart@nginx.com    *) Bugfix: WebSocket support was broken if Unit was built with some
1841185Svbart@nginx.com       linkers other than GNU ld (e.g. gold or LLD).
1851185Svbart@nginx.com
1861134Svbart@nginx.com
1871134Svbart@nginx.comChanges with Unit 1.10.0                                         22 Aug 2019
1881134Svbart@nginx.com
1891134Svbart@nginx.com    *) Change: matching of cookies in routes made case sensitive.
1901134Svbart@nginx.com
1911134Svbart@nginx.com    *) Change: decreased log level of common errors when clients close
1921134Svbart@nginx.com       connections.
1931134Svbart@nginx.com
1941134Svbart@nginx.com    *) Change: removed the Perl module's "--include=" ./configure option.
1951134Svbart@nginx.com
1961134Svbart@nginx.com    *) Feature: built-in WebSocket server implementation for Node.js module.
1971134Svbart@nginx.com
1981134Svbart@nginx.com    *) Feature: splitting PATH_INFO from request URI in PHP module.
1991134Svbart@nginx.com
2001134Svbart@nginx.com    *) Feature: request routing by scheme (HTTP or HTTPS).
2011134Svbart@nginx.com
2021134Svbart@nginx.com    *) Feature: support for multipart requests body in Java module.
2031134Svbart@nginx.com
2041134Svbart@nginx.com    *) Feature: improved API compatibility with Node.js 11.10 or later.
2051134Svbart@nginx.com
2061134Svbart@nginx.com    *) Bugfix: reconfiguration failed if "listeners" or "applications"
2071134Svbart@nginx.com       objects were missing.
2081134Svbart@nginx.com
2091134Svbart@nginx.com    *) Bugfix: applying a large configuration might have failed.
2101134Svbart@nginx.com
2111069Svbart@nginx.com
2121069Svbart@nginx.comChanges with Unit 1.9.0                                          30 May 2019
2131069Svbart@nginx.com
2141069Svbart@nginx.com    *) Feature: request routing by arguments, headers, and cookies.
2151069Svbart@nginx.com
2161069Svbart@nginx.com    *) Feature: route matching patterns allow a wildcard in the middle.
2171069Svbart@nginx.com
2181069Svbart@nginx.com    *) Feature: POST operation for appending elements to arrays in
2191069Svbart@nginx.com       configuration.
2201069Svbart@nginx.com
2211069Svbart@nginx.com    *) Feature: support for changing credentials using CAP_SETUID and
2221069Svbart@nginx.com       CAP_SETGID capabilities on Linux without running main process as
2231069Svbart@nginx.com       privileged user.
2241069Svbart@nginx.com
2251069Svbart@nginx.com    *) Bugfix: memory leak in the router process might have happened when a
2261069Svbart@nginx.com       client prematurely closed the connection.
2271069Svbart@nginx.com
2281069Svbart@nginx.com    *) Bugfix: applying a large configuration might have failed.
2291069Svbart@nginx.com
2301069Svbart@nginx.com    *) Bugfix: PUT and DELETE operations on array elements in configuration
2311069Svbart@nginx.com       did not work.
2321069Svbart@nginx.com
2331069Svbart@nginx.com    *) Bugfix: request schema in applications did not reflect TLS
2341069Svbart@nginx.com       connections.
2351069Svbart@nginx.com
2361069Svbart@nginx.com    *) Bugfix: restored compatibility with Node.js applications that use
2371069Svbart@nginx.com       ServerResponse._implicitHeader() function; the bug had appeared in
2381069Svbart@nginx.com       1.7.
2391069Svbart@nginx.com
2401069Svbart@nginx.com    *) Bugfix: various compatibility issues with Node.js applications.
2411069Svbart@nginx.com
242991Svbart@nginx.com
243991Svbart@nginx.comChanges with Unit 1.8.0                                          01 Mar 2019
244991Svbart@nginx.com
245991Svbart@nginx.com    *) Change: now three numbers are always used for versioning: major,
246991Svbart@nginx.com       minor, and patch versions.
247991Svbart@nginx.com
248991Svbart@nginx.com    *) Change: now QUERY_STRING is always defined even if the request does
249991Svbart@nginx.com       not include the query component.
250991Svbart@nginx.com
251991Svbart@nginx.com    *) Feature: basic internal request routing by Host, URI, and method.
252991Svbart@nginx.com
253991Svbart@nginx.com    *) Feature: experimental support for Java Servlet Containers.
254991Svbart@nginx.com
255991Svbart@nginx.com    *) Bugfix: segmentation fault might have occurred in the router process.
256991Svbart@nginx.com
257991Svbart@nginx.com    *) Bugfix: various potential memory leaks.
258991Svbart@nginx.com
259991Svbart@nginx.com    *) Bugfix: TLS connections might have stalled.
260991Svbart@nginx.com
261991Svbart@nginx.com    *) Bugfix: some Perl applications might have failed to send the response
262991Svbart@nginx.com       body.
263991Svbart@nginx.com
264991Svbart@nginx.com    *) Bugfix: some compilers with specific flags might have produced
265991Svbart@nginx.com       non-functioning builds; the bug had appeared in 1.5.
266991Svbart@nginx.com
267991Svbart@nginx.com    *) Bugfix: Node.js package had wrong version number when installed from
268991Svbart@nginx.com       sources.
269991Svbart@nginx.com
270926Svbart@nginx.com
271926Svbart@nginx.comChanges with Unit 1.7.1                                          07 Feb 2019
272926Svbart@nginx.com
273926Svbart@nginx.com    *) Security: a heap memory buffer overflow might have been caused in the
274926Svbart@nginx.com       router process by a specially crafted request, potentially resulting
275926Svbart@nginx.com       in a segmentation fault or other unspecified behavior
276926Svbart@nginx.com       (CVE-2019-7401).
277926Svbart@nginx.com
278926Svbart@nginx.com    *) Bugfix: install of Go module failed without prior building of Unit
279926Svbart@nginx.com       daemon; the bug had appeared in 1.7.
280926Svbart@nginx.com
281886Svbart@nginx.com
282886Svbart@nginx.comChanges with Unit 1.7                                            20 Dec 2018
283886Svbart@nginx.com
284886Svbart@nginx.com    *) Change: now rpath is set in Ruby module only if the library was not
285886Svbart@nginx.com       found in default search paths; this allows to meet packaging
286886Svbart@nginx.com       restrictions on some systems.
287886Svbart@nginx.com
288886Svbart@nginx.com    *) Bugfix: "disable_functions" and "disable_classes" PHP options set via
289886Svbart@nginx.com       Control API did not work.
290886Svbart@nginx.com
291886Svbart@nginx.com    *) Bugfix: Promises on request data in Node.js were not triggered.
292886Svbart@nginx.com
293886Svbart@nginx.com    *) Bugfix: various compatibility issues with Node.js applications.
294886Svbart@nginx.com
295886Svbart@nginx.com    *) Bugfix: a segmentation fault occurred in Node.js module if
296886Svbart@nginx.com       application tried to read request body after request.end() was
297886Svbart@nginx.com       called.
298886Svbart@nginx.com
299886Svbart@nginx.com    *) Bugfix: a segmentation fault occurred in Node.js module if
300886Svbart@nginx.com       application attempted to send header twice.
301886Svbart@nginx.com
302886Svbart@nginx.com    *) Bugfix: names of response header fields in Node.js module were
303886Svbart@nginx.com       erroneously treated as case-sensitive.
304886Svbart@nginx.com
305886Svbart@nginx.com    *) Bugfix: uncatched exceptions in Node.js were not logged.
306886Svbart@nginx.com
307886Svbart@nginx.com    *) Bugfix: global install of Node.js module from sources was broken on
308886Svbart@nginx.com       some systems; the bug had appeared in 1.6.
309886Svbart@nginx.com
310886Svbart@nginx.com    *) Bugfix: traceback for exceptions during initialization of Python
311886Svbart@nginx.com       applications might not be logged.
312886Svbart@nginx.com
313886Svbart@nginx.com    *) Bugfix: PHP module build failed if PHP interpreter was built with
314886Svbart@nginx.com       thread safety enabled.
315886Svbart@nginx.com
316846Svbart@nginx.com
317846Svbart@nginx.comChanges with Unit 1.6                                            15 Nov 2018
318846Svbart@nginx.com
319846Svbart@nginx.com    *) Change: "make install" now installs Node.js module as well if it was
320846Svbart@nginx.com       configured.
321846Svbart@nginx.com
322846Svbart@nginx.com    *) Feature: "--local" ./configure option to install Node.js module
323846Svbart@nginx.com       locally.
324846Svbart@nginx.com
325846Svbart@nginx.com    *) Bugfix: Node.js module might have crashed due to broken reference
326846Svbart@nginx.com       counting.
327846Svbart@nginx.com
328846Svbart@nginx.com    *) Bugfix: asynchronous operations in Node.js might not have worked.
329846Svbart@nginx.com
330846Svbart@nginx.com    *) Bugfix: various compatibility issues with Node.js applications.
331846Svbart@nginx.com
332846Svbart@nginx.com    *) Bugfix: "freed pointer is out of pool" alerts might have appeared in
333846Svbart@nginx.com       log.
334846Svbart@nginx.com
335885Svbart@nginx.com    *) Bugfix: module discovery did not work on 64-bit big-endian systems
336846Svbart@nginx.com       like IBM/S390x.
337846Svbart@nginx.com
338820Svbart@nginx.com
339820Svbart@nginx.comChanges with Unit 1.5                                            25 Oct 2018
340820Svbart@nginx.com
341820Svbart@nginx.com    *) Change: the "type" of application object for Go was changed to
342820Svbart@nginx.com       "external".
343820Svbart@nginx.com
344820Svbart@nginx.com    *) Feature: initial version of Node.js package with basic HTTP
345820Svbart@nginx.com       request-response support.
346820Svbart@nginx.com
347820Svbart@nginx.com    *) Feature: compatibility with LibreSSL.
348820Svbart@nginx.com
349820Svbart@nginx.com    *) Feature: --libdir and --incdir ./configure options to install libunit
350820Svbart@nginx.com       headers and static library.
351820Svbart@nginx.com
352820Svbart@nginx.com    *) Bugfix: connection might be closed prematurely while sending
353820Svbart@nginx.com       response; the bug had appeared in 1.3.
354820Svbart@nginx.com
355820Svbart@nginx.com    *) Bugfix: application processes might have stopped handling requests,
356820Svbart@nginx.com       producing "last message send failed: Resource temporarily
357820Svbart@nginx.com       unavailable" alerts in log; the bug had appeared in 1.4.
358820Svbart@nginx.com
359885Svbart@nginx.com    *) Bugfix: Go applications did not work when Unit was built with musl C
360820Svbart@nginx.com       library.
361820Svbart@nginx.com
362783Svbart@nginx.com
363783Svbart@nginx.comChanges with Unit 1.4                                            20 Sep 2018
364783Svbart@nginx.com
365783Svbart@nginx.com    *) Change: the control API maps the configuration object only at
366783Svbart@nginx.com       "/config/".
367783Svbart@nginx.com
368783Svbart@nginx.com    *) Feature: TLS support for client connections.
369783Svbart@nginx.com
370783Svbart@nginx.com    *) Feature: TLS certificates storage control API.
371783Svbart@nginx.com
372783Svbart@nginx.com    *) Feature: Unit library (libunit) to streamline language module
373783Svbart@nginx.com       integration.
374783Svbart@nginx.com
375783Svbart@nginx.com    *) Feature: "408 Request Timeout" responses while closing HTTP
376783Svbart@nginx.com       keep-alive connections.
377783Svbart@nginx.com
378783Svbart@nginx.com    *) Feature: improvements in OpenBSD support. Thanks to David Carlier.
379783Svbart@nginx.com
380783Svbart@nginx.com    *) Bugfix: a segmentation fault might have occurred after
381783Svbart@nginx.com       reconfiguration.
382783Svbart@nginx.com
383783Svbart@nginx.com    *) Bugfix: building on systems with non-default locale might be broken.
384783Svbart@nginx.com
385783Svbart@nginx.com    *) Bugfix: "header_read_timeout" might not work properly.
386783Svbart@nginx.com
387783Svbart@nginx.com    *) Bugfix: header fields values with non-ASCII bytes might be handled
388783Svbart@nginx.com       incorrectly in Python 3 module.
389783Svbart@nginx.com
390727Svbart@nginx.com
391727Svbart@nginx.comChanges with Unit 1.3                                            13 Jul 2018
392727Svbart@nginx.com
393727Svbart@nginx.com    *) Change: UTF-8 characters are now allowed in request header field
394727Svbart@nginx.com       values.
395727Svbart@nginx.com
396727Svbart@nginx.com    *) Feature: configuration of the request body size limit.
397727Svbart@nginx.com
398727Svbart@nginx.com    *) Feature: configuration of various HTTP connection timeouts.
399727Svbart@nginx.com
400727Svbart@nginx.com    *) Feature: Ruby module now automatically uses Bundler where possible.
401727Svbart@nginx.com
402727Svbart@nginx.com    *) Feature: http.Flusher interface in Go module.
403727Svbart@nginx.com
404727Svbart@nginx.com    *) Bugfix: various issues in HTTP connection errors handling.
405727Svbart@nginx.com
406727Svbart@nginx.com    *) Bugfix: requests with body data might be handled incorrectly in PHP
407727Svbart@nginx.com       module.
408727Svbart@nginx.com
409727Svbart@nginx.com    *) Bugfix: individual PHP configuration options specified via control
410727Svbart@nginx.com       API were reset to previous values after the first request in
411727Svbart@nginx.com       application process.
412727Svbart@nginx.com
413689Svbart@nginx.com
414689Svbart@nginx.comChanges with Unit 1.2                                            07 Jun 2018
415689Svbart@nginx.com
416689Svbart@nginx.com    *) Feature: configuration of environment variables for application
417689Svbart@nginx.com       processes.
418689Svbart@nginx.com
419689Svbart@nginx.com    *) Feature: customization of php.ini path.
420689Svbart@nginx.com
421689Svbart@nginx.com    *) Feature: setting of individual PHP configuration options.
422689Svbart@nginx.com
423689Svbart@nginx.com    *) Feature: configuration of execution arguments for Go applications.
424689Svbart@nginx.com
425689Svbart@nginx.com    *) Bugfix: keep-alive connections might hang after reconfiguration.
426689Svbart@nginx.com
427666Svbart@nginx.com
428666Svbart@nginx.comChanges with Unit 1.1                                            26 Apr 2018
429666Svbart@nginx.com
430666Svbart@nginx.com    *) Bugfix: Python applications that use the write() callable did not
431666Svbart@nginx.com       work.
432666Svbart@nginx.com
433666Svbart@nginx.com    *) Bugfix: virtual environments created with Python 3.3 or above might
434666Svbart@nginx.com       not have worked.
435666Svbart@nginx.com
436666Svbart@nginx.com    *) Bugfix: the request.Read() function in Go applications did not
437666Svbart@nginx.com       produce EOF when the whole body was read.
438666Svbart@nginx.com
439666Svbart@nginx.com    *) Bugfix: a segmentation fault might have occurred while access log
440666Svbart@nginx.com       reopening.
441666Svbart@nginx.com
442666Svbart@nginx.com    *) Bugfix: in parsing of IPv6 control socket addresses.
443666Svbart@nginx.com
444666Svbart@nginx.com    *) Bugfix: loading of application modules was broken on OpenBSD.
445666Svbart@nginx.com
446666Svbart@nginx.com    *) Bugfix: a segmentation fault might have occurred when there were two
447666Svbart@nginx.com       modules with the same type and version; the bug had appeared in 1.0.
448666Svbart@nginx.com
449666Svbart@nginx.com    *) Bugfix: alerts "freed pointer points to non-freeble page" might have
450666Svbart@nginx.com       appeared in log on 32-bit platforms.
451666Svbart@nginx.com
452639Svbart@nginx.com
453639Svbart@nginx.comChanges with Unit 1.0                                            12 Apr 2018
454639Svbart@nginx.com
455639Svbart@nginx.com    *) Change: configuration object moved into "/config/" path.
456639Svbart@nginx.com
457639Svbart@nginx.com    *) Feature: basic access logging.
458639Svbart@nginx.com
459639Svbart@nginx.com    *) Bugfix: 503 error occurred if Go application did not write response
460639Svbart@nginx.com       header or body.
461639Svbart@nginx.com
462639Svbart@nginx.com    *) Bugfix: Ruby applications that use encoding conversions might not
463663Svbart@nginx.com       have worked.
464639Svbart@nginx.com
465639Svbart@nginx.com    *) Bugfix: various stability issues.
466639Svbart@nginx.com
467586Svbart@nginx.com
468586Svbart@nginx.comChanges with Unit 0.7                                            22 Mar 2018
469586Svbart@nginx.com
470586Svbart@nginx.com    *) Feature: Ruby application module.
471586Svbart@nginx.com
472586Svbart@nginx.com    *) Bugfix: in discovering modules.
473586Svbart@nginx.com
474586Svbart@nginx.com    *) Bugfix: various race conditions on reconfiguration and during
475586Svbart@nginx.com       shutting down.
476586Svbart@nginx.com
477586Svbart@nginx.com    *) Bugfix: tabs and trailing spaces were not allowed in header fields
478586Svbart@nginx.com       values.
479586Svbart@nginx.com
480586Svbart@nginx.com    *) Bugfix: a segmentation fault occurred in Python module if
481586Svbart@nginx.com       start_response() was called outside of WSGI callable.
482586Svbart@nginx.com
483663Svbart@nginx.com    *) Bugfix: a segmentation fault might have occurred in PHP module if
484663Svbart@nginx.com       there was an error while initialization.
485586Svbart@nginx.com
486539Svbart@nginx.com
487539Svbart@nginx.comChanges with Unit 0.6                                            09 Feb 2018
488539Svbart@nginx.com
489539Svbart@nginx.com    *) Bugfix: the main process died when the "type" application option
490539Svbart@nginx.com       contained version; the bug had appeared in 0.5.
491539Svbart@nginx.com
492531Svbart@nginx.com
493531Svbart@nginx.comChanges with Unit 0.5                                            08 Feb 2018
494531Svbart@nginx.com
495531Svbart@nginx.com    *) Change: the "workers" application option was removed, the "processes"
496531Svbart@nginx.com       application option should be used instead.
497531Svbart@nginx.com
498531Svbart@nginx.com    *) Feature: the "processes" application option with prefork and dynamic
499531Svbart@nginx.com       process management support.
500531Svbart@nginx.com
501531Svbart@nginx.com    *) Feature: Perl application module.
502531Svbart@nginx.com
503531Svbart@nginx.com    *) Bugfix: in reading client request body; the bug had appeared in 0.3.
504531Svbart@nginx.com
505663Svbart@nginx.com    *) Bugfix: some Python applications might not have worked due to missing
506531Svbart@nginx.com       "wsgi.errors" environ variable.
507531Svbart@nginx.com
508531Svbart@nginx.com    *) Bugfix: HTTP chunked responses might be encoded incorrectly on 32-bit
509531Svbart@nginx.com       platforms.
510531Svbart@nginx.com
511531Svbart@nginx.com    *) Bugfix: infinite looping in HTTP parser.
512531Svbart@nginx.com
513531Svbart@nginx.com    *) Bugfix: segmentation fault in router.
514531Svbart@nginx.com
515469Sigor@sysoev.ru
516469Sigor@sysoev.ruChanges with Unit 0.4                                            15 Jan 2018
517469Sigor@sysoev.ru
518469Sigor@sysoev.ru    *) Feature: compatibility with DragonFly BSD.
519469Sigor@sysoev.ru
520469Sigor@sysoev.ru    *) Feature: "configure php --lib-static" option.
521469Sigor@sysoev.ru
522469Sigor@sysoev.ru    *) Bugfix: HTTP request body was not passed to application; the bug had
523469Sigor@sysoev.ru       appeared in 0.3.
524469Sigor@sysoev.ru
525469Sigor@sysoev.ru    *) Bugfix: HTTP large header buffers allocation and deallocation fixed;
526469Sigor@sysoev.ru       the bug had appeared in 0.3.
527469Sigor@sysoev.ru
528663Svbart@nginx.com    *) Bugfix: some PHP applications might not have worked with relative
529663Svbart@nginx.com       "root" path.
530469Sigor@sysoev.ru
531432Sigor@sysoev.ru
532432Sigor@sysoev.ruChanges with Unit 0.3                                            28 Dec 2017
533432Sigor@sysoev.ru
534432Sigor@sysoev.ru    *) Change: the Go package name changed to "nginx/unit".
535432Sigor@sysoev.ru
536432Sigor@sysoev.ru    *) Change: in the "limits.timeout" application option: application start
537432Sigor@sysoev.ru       time and time in queue now are not accounted.
538432Sigor@sysoev.ru
539432Sigor@sysoev.ru    *) Feature: the "limits.requests" application option.
540432Sigor@sysoev.ru
541432Sigor@sysoev.ru    *) Feature: application request processing latency optimization.
542432Sigor@sysoev.ru
543432Sigor@sysoev.ru    *) Feature: HTTP keep-alive connections support.
544432Sigor@sysoev.ru
545432Sigor@sysoev.ru    *) Feature: the "home" Python virtual environment configuration option.
546432Sigor@sysoev.ru
547432Sigor@sysoev.ru    *) Feature: Python atexit hook support.
548432Sigor@sysoev.ru
549432Sigor@sysoev.ru    *) Feature: various Go package improvements.
550432Sigor@sysoev.ru
551432Sigor@sysoev.ru    *) Bugfix: various crashes fixed.
552432Sigor@sysoev.ru
553286Sigor@sysoev.ru
554370Sigor@sysoev.ruChanges with Unit 0.2                                            19 Oct 2017
555370Sigor@sysoev.ru
556370Sigor@sysoev.ru    *) Feature: configuration persistence.
557370Sigor@sysoev.ru
558370Sigor@sysoev.ru    *) Feature: improved handling of configuration errors.
559370Sigor@sysoev.ru
560370Sigor@sysoev.ru    *) Feature: application "timeout" property.
561370Sigor@sysoev.ru
562370Sigor@sysoev.ru    *) Bugfix: POST request for PHP were handled incorrectly.
563370Sigor@sysoev.ru
564370Sigor@sysoev.ru    *) Bugfix: the router exited abnormally if all listeners had been
565370Sigor@sysoev.ru       deleted.
566370Sigor@sysoev.ru
567370Sigor@sysoev.ru    *) Bugfix: the router crashed under load.
568370Sigor@sysoev.ru
569370Sigor@sysoev.ru    *) Bugfix: memory leak in the router.
570370Sigor@sysoev.ru
571370Sigor@sysoev.ru
572370Sigor@sysoev.ruChanges with Unit 0.1                                            06 Sep 2017
573286Sigor@sysoev.ru
574286Sigor@sysoev.ru    *) First public release.
575286Sigor@sysoev.ru
576