1*1134Svbart@nginx.com 2*1134Svbart@nginx.comChanges with Unit 1.10.0 22 Aug 2019 3*1134Svbart@nginx.com 4*1134Svbart@nginx.com *) Change: matching of cookies in routes made case sensitive. 5*1134Svbart@nginx.com 6*1134Svbart@nginx.com *) Change: decreased log level of common errors when clients close 7*1134Svbart@nginx.com connections. 8*1134Svbart@nginx.com 9*1134Svbart@nginx.com *) Change: removed the Perl module's "--include=" ./configure option. 10*1134Svbart@nginx.com 11*1134Svbart@nginx.com *) Feature: built-in WebSocket server implementation for Node.js module. 12*1134Svbart@nginx.com 13*1134Svbart@nginx.com *) Feature: splitting PATH_INFO from request URI in PHP module. 14*1134Svbart@nginx.com 15*1134Svbart@nginx.com *) Feature: request routing by scheme (HTTP or HTTPS). 16*1134Svbart@nginx.com 17*1134Svbart@nginx.com *) Feature: support for multipart requests body in Java module. 18*1134Svbart@nginx.com 19*1134Svbart@nginx.com *) Feature: improved API compatibility with Node.js 11.10 or later. 20*1134Svbart@nginx.com 21*1134Svbart@nginx.com *) Bugfix: reconfiguration failed if "listeners" or "applications" 22*1134Svbart@nginx.com objects were missing. 23*1134Svbart@nginx.com 24*1134Svbart@nginx.com *) Bugfix: applying a large configuration might have failed. 25*1134Svbart@nginx.com 261069Svbart@nginx.com 271069Svbart@nginx.comChanges with Unit 1.9.0 30 May 2019 281069Svbart@nginx.com 291069Svbart@nginx.com *) Feature: request routing by arguments, headers, and cookies. 301069Svbart@nginx.com 311069Svbart@nginx.com *) Feature: route matching patterns allow a wildcard in the middle. 321069Svbart@nginx.com 331069Svbart@nginx.com *) Feature: POST operation for appending elements to arrays in 341069Svbart@nginx.com configuration. 351069Svbart@nginx.com 361069Svbart@nginx.com *) Feature: support for changing credentials using CAP_SETUID and 371069Svbart@nginx.com CAP_SETGID capabilities on Linux without running main process as 381069Svbart@nginx.com privileged user. 391069Svbart@nginx.com 401069Svbart@nginx.com *) Bugfix: memory leak in the router process might have happened when a 411069Svbart@nginx.com client prematurely closed the connection. 421069Svbart@nginx.com 431069Svbart@nginx.com *) Bugfix: applying a large configuration might have failed. 441069Svbart@nginx.com 451069Svbart@nginx.com *) Bugfix: PUT and DELETE operations on array elements in configuration 461069Svbart@nginx.com did not work. 471069Svbart@nginx.com 481069Svbart@nginx.com *) Bugfix: request schema in applications did not reflect TLS 491069Svbart@nginx.com connections. 501069Svbart@nginx.com 511069Svbart@nginx.com *) Bugfix: restored compatibility with Node.js applications that use 521069Svbart@nginx.com ServerResponse._implicitHeader() function; the bug had appeared in 531069Svbart@nginx.com 1.7. 541069Svbart@nginx.com 551069Svbart@nginx.com *) Bugfix: various compatibility issues with Node.js applications. 561069Svbart@nginx.com 57991Svbart@nginx.com 58991Svbart@nginx.comChanges with Unit 1.8.0 01 Mar 2019 59991Svbart@nginx.com 60991Svbart@nginx.com *) Change: now three numbers are always used for versioning: major, 61991Svbart@nginx.com minor, and patch versions. 62991Svbart@nginx.com 63991Svbart@nginx.com *) Change: now QUERY_STRING is always defined even if the request does 64991Svbart@nginx.com not include the query component. 65991Svbart@nginx.com 66991Svbart@nginx.com *) Feature: basic internal request routing by Host, URI, and method. 67991Svbart@nginx.com 68991Svbart@nginx.com *) Feature: experimental support for Java Servlet Containers. 69991Svbart@nginx.com 70991Svbart@nginx.com *) Bugfix: segmentation fault might have occurred in the router process. 71991Svbart@nginx.com 72991Svbart@nginx.com *) Bugfix: various potential memory leaks. 73991Svbart@nginx.com 74991Svbart@nginx.com *) Bugfix: TLS connections might have stalled. 75991Svbart@nginx.com 76991Svbart@nginx.com *) Bugfix: some Perl applications might have failed to send the response 77991Svbart@nginx.com body. 78991Svbart@nginx.com 79991Svbart@nginx.com *) Bugfix: some compilers with specific flags might have produced 80991Svbart@nginx.com non-functioning builds; the bug had appeared in 1.5. 81991Svbart@nginx.com 82991Svbart@nginx.com *) Bugfix: Node.js package had wrong version number when installed from 83991Svbart@nginx.com sources. 84991Svbart@nginx.com 85926Svbart@nginx.com 86926Svbart@nginx.comChanges with Unit 1.7.1 07 Feb 2019 87926Svbart@nginx.com 88926Svbart@nginx.com *) Security: a heap memory buffer overflow might have been caused in the 89926Svbart@nginx.com router process by a specially crafted request, potentially resulting 90926Svbart@nginx.com in a segmentation fault or other unspecified behavior 91926Svbart@nginx.com (CVE-2019-7401). 92926Svbart@nginx.com 93926Svbart@nginx.com *) Bugfix: install of Go module failed without prior building of Unit 94926Svbart@nginx.com daemon; the bug had appeared in 1.7. 95926Svbart@nginx.com 96886Svbart@nginx.com 97886Svbart@nginx.comChanges with Unit 1.7 20 Dec 2018 98886Svbart@nginx.com 99886Svbart@nginx.com *) Change: now rpath is set in Ruby module only if the library was not 100886Svbart@nginx.com found in default search paths; this allows to meet packaging 101886Svbart@nginx.com restrictions on some systems. 102886Svbart@nginx.com 103886Svbart@nginx.com *) Bugfix: "disable_functions" and "disable_classes" PHP options set via 104886Svbart@nginx.com Control API did not work. 105886Svbart@nginx.com 106886Svbart@nginx.com *) Bugfix: Promises on request data in Node.js were not triggered. 107886Svbart@nginx.com 108886Svbart@nginx.com *) Bugfix: various compatibility issues with Node.js applications. 109886Svbart@nginx.com 110886Svbart@nginx.com *) Bugfix: a segmentation fault occurred in Node.js module if 111886Svbart@nginx.com application tried to read request body after request.end() was 112886Svbart@nginx.com called. 113886Svbart@nginx.com 114886Svbart@nginx.com *) Bugfix: a segmentation fault occurred in Node.js module if 115886Svbart@nginx.com application attempted to send header twice. 116886Svbart@nginx.com 117886Svbart@nginx.com *) Bugfix: names of response header fields in Node.js module were 118886Svbart@nginx.com erroneously treated as case-sensitive. 119886Svbart@nginx.com 120886Svbart@nginx.com *) Bugfix: uncatched exceptions in Node.js were not logged. 121886Svbart@nginx.com 122886Svbart@nginx.com *) Bugfix: global install of Node.js module from sources was broken on 123886Svbart@nginx.com some systems; the bug had appeared in 1.6. 124886Svbart@nginx.com 125886Svbart@nginx.com *) Bugfix: traceback for exceptions during initialization of Python 126886Svbart@nginx.com applications might not be logged. 127886Svbart@nginx.com 128886Svbart@nginx.com *) Bugfix: PHP module build failed if PHP interpreter was built with 129886Svbart@nginx.com thread safety enabled. 130886Svbart@nginx.com 131846Svbart@nginx.com 132846Svbart@nginx.comChanges with Unit 1.6 15 Nov 2018 133846Svbart@nginx.com 134846Svbart@nginx.com *) Change: "make install" now installs Node.js module as well if it was 135846Svbart@nginx.com configured. 136846Svbart@nginx.com 137846Svbart@nginx.com *) Feature: "--local" ./configure option to install Node.js module 138846Svbart@nginx.com locally. 139846Svbart@nginx.com 140846Svbart@nginx.com *) Bugfix: Node.js module might have crashed due to broken reference 141846Svbart@nginx.com counting. 142846Svbart@nginx.com 143846Svbart@nginx.com *) Bugfix: asynchronous operations in Node.js might not have worked. 144846Svbart@nginx.com 145846Svbart@nginx.com *) Bugfix: various compatibility issues with Node.js applications. 146846Svbart@nginx.com 147846Svbart@nginx.com *) Bugfix: "freed pointer is out of pool" alerts might have appeared in 148846Svbart@nginx.com log. 149846Svbart@nginx.com 150885Svbart@nginx.com *) Bugfix: module discovery did not work on 64-bit big-endian systems 151846Svbart@nginx.com like IBM/S390x. 152846Svbart@nginx.com 153820Svbart@nginx.com 154820Svbart@nginx.comChanges with Unit 1.5 25 Oct 2018 155820Svbart@nginx.com 156820Svbart@nginx.com *) Change: the "type" of application object for Go was changed to 157820Svbart@nginx.com "external". 158820Svbart@nginx.com 159820Svbart@nginx.com *) Feature: initial version of Node.js package with basic HTTP 160820Svbart@nginx.com request-response support. 161820Svbart@nginx.com 162820Svbart@nginx.com *) Feature: compatibility with LibreSSL. 163820Svbart@nginx.com 164820Svbart@nginx.com *) Feature: --libdir and --incdir ./configure options to install libunit 165820Svbart@nginx.com headers and static library. 166820Svbart@nginx.com 167820Svbart@nginx.com *) Bugfix: connection might be closed prematurely while sending 168820Svbart@nginx.com response; the bug had appeared in 1.3. 169820Svbart@nginx.com 170820Svbart@nginx.com *) Bugfix: application processes might have stopped handling requests, 171820Svbart@nginx.com producing "last message send failed: Resource temporarily 172820Svbart@nginx.com unavailable" alerts in log; the bug had appeared in 1.4. 173820Svbart@nginx.com 174885Svbart@nginx.com *) Bugfix: Go applications did not work when Unit was built with musl C 175820Svbart@nginx.com library. 176820Svbart@nginx.com 177783Svbart@nginx.com 178783Svbart@nginx.comChanges with Unit 1.4 20 Sep 2018 179783Svbart@nginx.com 180783Svbart@nginx.com *) Change: the control API maps the configuration object only at 181783Svbart@nginx.com "/config/". 182783Svbart@nginx.com 183783Svbart@nginx.com *) Feature: TLS support for client connections. 184783Svbart@nginx.com 185783Svbart@nginx.com *) Feature: TLS certificates storage control API. 186783Svbart@nginx.com 187783Svbart@nginx.com *) Feature: Unit library (libunit) to streamline language module 188783Svbart@nginx.com integration. 189783Svbart@nginx.com 190783Svbart@nginx.com *) Feature: "408 Request Timeout" responses while closing HTTP 191783Svbart@nginx.com keep-alive connections. 192783Svbart@nginx.com 193783Svbart@nginx.com *) Feature: improvements in OpenBSD support. Thanks to David Carlier. 194783Svbart@nginx.com 195783Svbart@nginx.com *) Bugfix: a segmentation fault might have occurred after 196783Svbart@nginx.com reconfiguration. 197783Svbart@nginx.com 198783Svbart@nginx.com *) Bugfix: building on systems with non-default locale might be broken. 199783Svbart@nginx.com 200783Svbart@nginx.com *) Bugfix: "header_read_timeout" might not work properly. 201783Svbart@nginx.com 202783Svbart@nginx.com *) Bugfix: header fields values with non-ASCII bytes might be handled 203783Svbart@nginx.com incorrectly in Python 3 module. 204783Svbart@nginx.com 205727Svbart@nginx.com 206727Svbart@nginx.comChanges with Unit 1.3 13 Jul 2018 207727Svbart@nginx.com 208727Svbart@nginx.com *) Change: UTF-8 characters are now allowed in request header field 209727Svbart@nginx.com values. 210727Svbart@nginx.com 211727Svbart@nginx.com *) Feature: configuration of the request body size limit. 212727Svbart@nginx.com 213727Svbart@nginx.com *) Feature: configuration of various HTTP connection timeouts. 214727Svbart@nginx.com 215727Svbart@nginx.com *) Feature: Ruby module now automatically uses Bundler where possible. 216727Svbart@nginx.com 217727Svbart@nginx.com *) Feature: http.Flusher interface in Go module. 218727Svbart@nginx.com 219727Svbart@nginx.com *) Bugfix: various issues in HTTP connection errors handling. 220727Svbart@nginx.com 221727Svbart@nginx.com *) Bugfix: requests with body data might be handled incorrectly in PHP 222727Svbart@nginx.com module. 223727Svbart@nginx.com 224727Svbart@nginx.com *) Bugfix: individual PHP configuration options specified via control 225727Svbart@nginx.com API were reset to previous values after the first request in 226727Svbart@nginx.com application process. 227727Svbart@nginx.com 228689Svbart@nginx.com 229689Svbart@nginx.comChanges with Unit 1.2 07 Jun 2018 230689Svbart@nginx.com 231689Svbart@nginx.com *) Feature: configuration of environment variables for application 232689Svbart@nginx.com processes. 233689Svbart@nginx.com 234689Svbart@nginx.com *) Feature: customization of php.ini path. 235689Svbart@nginx.com 236689Svbart@nginx.com *) Feature: setting of individual PHP configuration options. 237689Svbart@nginx.com 238689Svbart@nginx.com *) Feature: configuration of execution arguments for Go applications. 239689Svbart@nginx.com 240689Svbart@nginx.com *) Bugfix: keep-alive connections might hang after reconfiguration. 241689Svbart@nginx.com 242666Svbart@nginx.com 243666Svbart@nginx.comChanges with Unit 1.1 26 Apr 2018 244666Svbart@nginx.com 245666Svbart@nginx.com *) Bugfix: Python applications that use the write() callable did not 246666Svbart@nginx.com work. 247666Svbart@nginx.com 248666Svbart@nginx.com *) Bugfix: virtual environments created with Python 3.3 or above might 249666Svbart@nginx.com not have worked. 250666Svbart@nginx.com 251666Svbart@nginx.com *) Bugfix: the request.Read() function in Go applications did not 252666Svbart@nginx.com produce EOF when the whole body was read. 253666Svbart@nginx.com 254666Svbart@nginx.com *) Bugfix: a segmentation fault might have occurred while access log 255666Svbart@nginx.com reopening. 256666Svbart@nginx.com 257666Svbart@nginx.com *) Bugfix: in parsing of IPv6 control socket addresses. 258666Svbart@nginx.com 259666Svbart@nginx.com *) Bugfix: loading of application modules was broken on OpenBSD. 260666Svbart@nginx.com 261666Svbart@nginx.com *) Bugfix: a segmentation fault might have occurred when there were two 262666Svbart@nginx.com modules with the same type and version; the bug had appeared in 1.0. 263666Svbart@nginx.com 264666Svbart@nginx.com *) Bugfix: alerts "freed pointer points to non-freeble page" might have 265666Svbart@nginx.com appeared in log on 32-bit platforms. 266666Svbart@nginx.com 267639Svbart@nginx.com 268639Svbart@nginx.comChanges with Unit 1.0 12 Apr 2018 269639Svbart@nginx.com 270639Svbart@nginx.com *) Change: configuration object moved into "/config/" path. 271639Svbart@nginx.com 272639Svbart@nginx.com *) Feature: basic access logging. 273639Svbart@nginx.com 274639Svbart@nginx.com *) Bugfix: 503 error occurred if Go application did not write response 275639Svbart@nginx.com header or body. 276639Svbart@nginx.com 277639Svbart@nginx.com *) Bugfix: Ruby applications that use encoding conversions might not 278663Svbart@nginx.com have worked. 279639Svbart@nginx.com 280639Svbart@nginx.com *) Bugfix: various stability issues. 281639Svbart@nginx.com 282586Svbart@nginx.com 283586Svbart@nginx.comChanges with Unit 0.7 22 Mar 2018 284586Svbart@nginx.com 285586Svbart@nginx.com *) Feature: Ruby application module. 286586Svbart@nginx.com 287586Svbart@nginx.com *) Bugfix: in discovering modules. 288586Svbart@nginx.com 289586Svbart@nginx.com *) Bugfix: various race conditions on reconfiguration and during 290586Svbart@nginx.com shutting down. 291586Svbart@nginx.com 292586Svbart@nginx.com *) Bugfix: tabs and trailing spaces were not allowed in header fields 293586Svbart@nginx.com values. 294586Svbart@nginx.com 295586Svbart@nginx.com *) Bugfix: a segmentation fault occurred in Python module if 296586Svbart@nginx.com start_response() was called outside of WSGI callable. 297586Svbart@nginx.com 298663Svbart@nginx.com *) Bugfix: a segmentation fault might have occurred in PHP module if 299663Svbart@nginx.com there was an error while initialization. 300586Svbart@nginx.com 301539Svbart@nginx.com 302539Svbart@nginx.comChanges with Unit 0.6 09 Feb 2018 303539Svbart@nginx.com 304539Svbart@nginx.com *) Bugfix: the main process died when the "type" application option 305539Svbart@nginx.com contained version; the bug had appeared in 0.5. 306539Svbart@nginx.com 307531Svbart@nginx.com 308531Svbart@nginx.comChanges with Unit 0.5 08 Feb 2018 309531Svbart@nginx.com 310531Svbart@nginx.com *) Change: the "workers" application option was removed, the "processes" 311531Svbart@nginx.com application option should be used instead. 312531Svbart@nginx.com 313531Svbart@nginx.com *) Feature: the "processes" application option with prefork and dynamic 314531Svbart@nginx.com process management support. 315531Svbart@nginx.com 316531Svbart@nginx.com *) Feature: Perl application module. 317531Svbart@nginx.com 318531Svbart@nginx.com *) Bugfix: in reading client request body; the bug had appeared in 0.3. 319531Svbart@nginx.com 320663Svbart@nginx.com *) Bugfix: some Python applications might not have worked due to missing 321531Svbart@nginx.com "wsgi.errors" environ variable. 322531Svbart@nginx.com 323531Svbart@nginx.com *) Bugfix: HTTP chunked responses might be encoded incorrectly on 32-bit 324531Svbart@nginx.com platforms. 325531Svbart@nginx.com 326531Svbart@nginx.com *) Bugfix: infinite looping in HTTP parser. 327531Svbart@nginx.com 328531Svbart@nginx.com *) Bugfix: segmentation fault in router. 329531Svbart@nginx.com 330469Sigor@sysoev.ru 331469Sigor@sysoev.ruChanges with Unit 0.4 15 Jan 2018 332469Sigor@sysoev.ru 333469Sigor@sysoev.ru *) Feature: compatibility with DragonFly BSD. 334469Sigor@sysoev.ru 335469Sigor@sysoev.ru *) Feature: "configure php --lib-static" option. 336469Sigor@sysoev.ru 337469Sigor@sysoev.ru *) Bugfix: HTTP request body was not passed to application; the bug had 338469Sigor@sysoev.ru appeared in 0.3. 339469Sigor@sysoev.ru 340469Sigor@sysoev.ru *) Bugfix: HTTP large header buffers allocation and deallocation fixed; 341469Sigor@sysoev.ru the bug had appeared in 0.3. 342469Sigor@sysoev.ru 343663Svbart@nginx.com *) Bugfix: some PHP applications might not have worked with relative 344663Svbart@nginx.com "root" path. 345469Sigor@sysoev.ru 346432Sigor@sysoev.ru 347432Sigor@sysoev.ruChanges with Unit 0.3 28 Dec 2017 348432Sigor@sysoev.ru 349432Sigor@sysoev.ru *) Change: the Go package name changed to "nginx/unit". 350432Sigor@sysoev.ru 351432Sigor@sysoev.ru *) Change: in the "limits.timeout" application option: application start 352432Sigor@sysoev.ru time and time in queue now are not accounted. 353432Sigor@sysoev.ru 354432Sigor@sysoev.ru *) Feature: the "limits.requests" application option. 355432Sigor@sysoev.ru 356432Sigor@sysoev.ru *) Feature: application request processing latency optimization. 357432Sigor@sysoev.ru 358432Sigor@sysoev.ru *) Feature: HTTP keep-alive connections support. 359432Sigor@sysoev.ru 360432Sigor@sysoev.ru *) Feature: the "home" Python virtual environment configuration option. 361432Sigor@sysoev.ru 362432Sigor@sysoev.ru *) Feature: Python atexit hook support. 363432Sigor@sysoev.ru 364432Sigor@sysoev.ru *) Feature: various Go package improvements. 365432Sigor@sysoev.ru 366432Sigor@sysoev.ru *) Bugfix: various crashes fixed. 367432Sigor@sysoev.ru 368286Sigor@sysoev.ru 369370Sigor@sysoev.ruChanges with Unit 0.2 19 Oct 2017 370370Sigor@sysoev.ru 371370Sigor@sysoev.ru *) Feature: configuration persistence. 372370Sigor@sysoev.ru 373370Sigor@sysoev.ru *) Feature: improved handling of configuration errors. 374370Sigor@sysoev.ru 375370Sigor@sysoev.ru *) Feature: application "timeout" property. 376370Sigor@sysoev.ru 377370Sigor@sysoev.ru *) Bugfix: POST request for PHP were handled incorrectly. 378370Sigor@sysoev.ru 379370Sigor@sysoev.ru *) Bugfix: the router exited abnormally if all listeners had been 380370Sigor@sysoev.ru deleted. 381370Sigor@sysoev.ru 382370Sigor@sysoev.ru *) Bugfix: the router crashed under load. 383370Sigor@sysoev.ru 384370Sigor@sysoev.ru *) Bugfix: memory leak in the router. 385370Sigor@sysoev.ru 386370Sigor@sysoev.ru 387370Sigor@sysoev.ruChanges with Unit 0.1 06 Sep 2017 388286Sigor@sysoev.ru 389286Sigor@sysoev.ru *) First public release. 390286Sigor@sysoev.ru 391