1 2Changes with Unit 1.8.0 01 Mar 2019 3 4 *) Change: now three numbers are always used for versioning: major, 5 minor, and patch versions. 6 7 *) Change: now QUERY_STRING is always defined even if the request does 8 not include the query component. 9 10 *) Feature: basic internal request routing by Host, URI, and method. 11 12 *) Feature: experimental support for Java Servlet Containers. 13 14 *) Bugfix: segmentation fault might have occurred in the router process. 15 16 *) Bugfix: various potential memory leaks. 17 18 *) Bugfix: TLS connections might have stalled. 19 20 *) Bugfix: some Perl applications might have failed to send the response 21 body. 22 23 *) Bugfix: some compilers with specific flags might have produced 24 non-functioning builds; the bug had appeared in 1.5. 25 26 *) Bugfix: Node.js package had wrong version number when installed from 27 sources. 28 29 30Changes with Unit 1.7.1 07 Feb 2019 31 32 *) Security: a heap memory buffer overflow might have been caused in the 33 router process by a specially crafted request, potentially resulting 34 in a segmentation fault or other unspecified behavior 35 (CVE-2019-7401). 36 37 *) Bugfix: install of Go module failed without prior building of Unit 38 daemon; the bug had appeared in 1.7. 39 40 41Changes with Unit 1.7 20 Dec 2018 42 43 *) Change: now rpath is set in Ruby module only if the library was not 44 found in default search paths; this allows to meet packaging 45 restrictions on some systems. 46 47 *) Bugfix: "disable_functions" and "disable_classes" PHP options set via 48 Control API did not work. 49 50 *) Bugfix: Promises on request data in Node.js were not triggered. 51 52 *) Bugfix: various compatibility issues with Node.js applications. 53 54 *) Bugfix: a segmentation fault occurred in Node.js module if 55 application tried to read request body after request.end() was 56 called. 57 58 *) Bugfix: a segmentation fault occurred in Node.js module if 59 application attempted to send header twice. 60 61 *) Bugfix: names of response header fields in Node.js module were 62 erroneously treated as case-sensitive. 63 64 *) Bugfix: uncatched exceptions in Node.js were not logged. 65 66 *) Bugfix: global install of Node.js module from sources was broken on 67 some systems; the bug had appeared in 1.6. 68 69 *) Bugfix: traceback for exceptions during initialization of Python 70 applications might not be logged. 71 72 *) Bugfix: PHP module build failed if PHP interpreter was built with 73 thread safety enabled. 74 75 76Changes with Unit 1.6 15 Nov 2018 77 78 *) Change: "make install" now installs Node.js module as well if it was 79 configured. 80 81 *) Feature: "--local" ./configure option to install Node.js module 82 locally. 83 84 *) Bugfix: Node.js module might have crashed due to broken reference 85 counting. 86 87 *) Bugfix: asynchronous operations in Node.js might not have worked. 88 89 *) Bugfix: various compatibility issues with Node.js applications. 90 91 *) Bugfix: "freed pointer is out of pool" alerts might have appeared in 92 log. 93 94 *) Bugfix: module discovery did not work on 64-bit big-endian systems 95 like IBM/S390x. 96 97 98Changes with Unit 1.5 25 Oct 2018 99 100 *) Change: the "type" of application object for Go was changed to 101 "external". 102 103 *) Feature: initial version of Node.js package with basic HTTP 104 request-response support. 105 106 *) Feature: compatibility with LibreSSL. 107 108 *) Feature: --libdir and --incdir ./configure options to install libunit 109 headers and static library. 110 111 *) Bugfix: connection might be closed prematurely while sending 112 response; the bug had appeared in 1.3. 113 114 *) Bugfix: application processes might have stopped handling requests, 115 producing "last message send failed: Resource temporarily 116 unavailable" alerts in log; the bug had appeared in 1.4. 117 118 *) Bugfix: Go applications did not work when Unit was built with musl C 119 library. 120 121 122Changes with Unit 1.4 20 Sep 2018 123 124 *) Change: the control API maps the configuration object only at 125 "/config/". 126 127 *) Feature: TLS support for client connections. 128 129 *) Feature: TLS certificates storage control API. 130 131 *) Feature: Unit library (libunit) to streamline language module 132 integration. 133 134 *) Feature: "408 Request Timeout" responses while closing HTTP 135 keep-alive connections. 136 137 *) Feature: improvements in OpenBSD support. Thanks to David Carlier. 138 139 *) Bugfix: a segmentation fault might have occurred after 140 reconfiguration. 141 142 *) Bugfix: building on systems with non-default locale might be broken. 143 144 *) Bugfix: "header_read_timeout" might not work properly. 145 146 *) Bugfix: header fields values with non-ASCII bytes might be handled 147 incorrectly in Python 3 module. 148 149 150Changes with Unit 1.3 13 Jul 2018 151 152 *) Change: UTF-8 characters are now allowed in request header field 153 values. 154 155 *) Feature: configuration of the request body size limit. 156 157 *) Feature: configuration of various HTTP connection timeouts. 158 159 *) Feature: Ruby module now automatically uses Bundler where possible. 160 161 *) Feature: http.Flusher interface in Go module. 162 163 *) Bugfix: various issues in HTTP connection errors handling. 164 165 *) Bugfix: requests with body data might be handled incorrectly in PHP 166 module. 167 168 *) Bugfix: individual PHP configuration options specified via control 169 API were reset to previous values after the first request in 170 application process. 171 172 173Changes with Unit 1.2 07 Jun 2018 174 175 *) Feature: configuration of environment variables for application 176 processes. 177 178 *) Feature: customization of php.ini path. 179 180 *) Feature: setting of individual PHP configuration options. 181 182 *) Feature: configuration of execution arguments for Go applications. 183 184 *) Bugfix: keep-alive connections might hang after reconfiguration. 185 186 187Changes with Unit 1.1 26 Apr 2018 188 189 *) Bugfix: Python applications that use the write() callable did not 190 work. 191 192 *) Bugfix: virtual environments created with Python 3.3 or above might 193 not have worked. 194 195 *) Bugfix: the request.Read() function in Go applications did not 196 produce EOF when the whole body was read. 197 198 *) Bugfix: a segmentation fault might have occurred while access log 199 reopening. 200 201 *) Bugfix: in parsing of IPv6 control socket addresses. 202 203 *) Bugfix: loading of application modules was broken on OpenBSD. 204 205 *) Bugfix: a segmentation fault might have occurred when there were two 206 modules with the same type and version; the bug had appeared in 1.0. 207 208 *) Bugfix: alerts "freed pointer points to non-freeble page" might have 209 appeared in log on 32-bit platforms. 210 211 212Changes with Unit 1.0 12 Apr 2018 213 214 *) Change: configuration object moved into "/config/" path. 215 216 *) Feature: basic access logging. 217 218 *) Bugfix: 503 error occurred if Go application did not write response 219 header or body. 220 221 *) Bugfix: Ruby applications that use encoding conversions might not 222 have worked. 223 224 *) Bugfix: various stability issues. 225 226 227Changes with Unit 0.7 22 Mar 2018 228 229 *) Feature: Ruby application module. 230 231 *) Bugfix: in discovering modules. 232 233 *) Bugfix: various race conditions on reconfiguration and during 234 shutting down. 235 236 *) Bugfix: tabs and trailing spaces were not allowed in header fields 237 values. 238 239 *) Bugfix: a segmentation fault occurred in Python module if 240 start_response() was called outside of WSGI callable. 241 242 *) Bugfix: a segmentation fault might have occurred in PHP module if 243 there was an error while initialization. 244 245 246Changes with Unit 0.6 09 Feb 2018 247 248 *) Bugfix: the main process died when the "type" application option 249 contained version; the bug had appeared in 0.5. 250 251 252Changes with Unit 0.5 08 Feb 2018 253 254 *) Change: the "workers" application option was removed, the "processes" 255 application option should be used instead. 256 257 *) Feature: the "processes" application option with prefork and dynamic 258 process management support. 259 260 *) Feature: Perl application module. 261 262 *) Bugfix: in reading client request body; the bug had appeared in 0.3. 263 264 *) Bugfix: some Python applications might not have worked due to missing 265 "wsgi.errors" environ variable. 266 267 *) Bugfix: HTTP chunked responses might be encoded incorrectly on 32-bit 268 platforms. 269 270 *) Bugfix: infinite looping in HTTP parser. 271 272 *) Bugfix: segmentation fault in router. 273 274 275Changes with Unit 0.4 15 Jan 2018 276 277 *) Feature: compatibility with DragonFly BSD. 278 279 *) Feature: "configure php --lib-static" option. 280 281 *) Bugfix: HTTP request body was not passed to application; the bug had 282 appeared in 0.3. 283 284 *) Bugfix: HTTP large header buffers allocation and deallocation fixed; 285 the bug had appeared in 0.3. 286 287 *) Bugfix: some PHP applications might not have worked with relative 288 "root" path. 289 290 291Changes with Unit 0.3 28 Dec 2017 292 293 *) Change: the Go package name changed to "nginx/unit". 294 295 *) Change: in the "limits.timeout" application option: application start 296 time and time in queue now are not accounted. 297 298 *) Feature: the "limits.requests" application option. 299 300 *) Feature: application request processing latency optimization. 301 302 *) Feature: HTTP keep-alive connections support. 303 304 *) Feature: the "home" Python virtual environment configuration option. 305 306 *) Feature: Python atexit hook support. 307 308 *) Feature: various Go package improvements. 309 310 *) Bugfix: various crashes fixed. 311 312 313Changes with Unit 0.2 19 Oct 2017 314 315 *) Feature: configuration persistence. 316 317 *) Feature: improved handling of configuration errors. 318 319 *) Feature: application "timeout" property. 320 321 *) Bugfix: POST request for PHP were handled incorrectly. 322 323 *) Bugfix: the router exited abnormally if all listeners had been 324 deleted. 325 326 *) Bugfix: the router crashed under load. 327 328 *) Bugfix: memory leak in the router. 329 330 331Changes with Unit 0.1 06 Sep 2017 332 333 *) First public release. 334 335