bugfix: use of ngx.req.socket() could make socket reading hang infinitely when the request did not take a request body at all (that is, when the Content-Length request header is missing). thanks Matthieu Tourne for reporting this issue.
fixed tests that may fail in slow testing modes.
bugfix: ngx.req.get_headers(limit, true) would still return header names in the all-lower-case form when the "limit" argument was an integer. thanks Matthieu Tourne for reporting this issue.
feature: implemented ngx.req.http_version() that returns the HTTP version number for the current request. thanks Matthieu Tourne for requesting this.
fixed a typo in an error message. thanks Matthieu Tourne for reporting it.
feature: implemented the ngx.req.raw_header() function for returning the original raw HTTP protocol header string received by Nginx. thanks Matthieu Tourne for requesting this.
docs: made it explicit that redirecting to external domains is also supported in ngx.redirect(). thanks Ron Gomes for asking.
fixed tests to reflect the typo fix in 4927e75b0507477f425a7296cf44119453363b2d.
fixed tests to reflect output format changes in agentzh/echo-nginx-module@2adcf59ec5c3dff7592b9c04dd31d34cf2f778d5.
fixed ill-formed HTTP requests in a recently-added test case, which caused issues under the "check leaks" testing mode.
bugfix: rewrite_by_lua_no_postpone can only work globally and did not reject contexts like "server" and "location" configuration blocks. thanks Matthieu Tourne for reporting this issue.
fixed the timeout settings for large header test cases in 104-req-raw-header.t.
updated docs to reflect recent changes; also bumped the version number to 0.7.17.
bugfix: when the Lua code using TCP cosockets + resolver was run in a subrequest, the subrequest could hang due to missing calls to ngx_http_run_posted_requests in the TCP cosocket resolver handler. thanks Lanshun Zhou for reporting this issue in #215.
bugfix: when the Lua code using UDP cosockets + resolver was run in a subrequest, the subrequest could hang due to missing calls to ngx_http_run_posted_requests in the UDP cosocket resolver handler. thanks Lanshun Zhou for reporting this issue in #215.
tests: avoided using taobao.com in the test suite; also decreased the resolver_timeout setting.
bugfix: invalid memory access might happen when the TCP cosockets were used. this regression had appeared in the commit 04775502b2e348181282345320b727ab1a5a8808.
bugfix: invalid memory access might happen when the UDP cosockets were used. this regression had appeared in the commit f84ca22c30091c75955d44bd790a714b1ef0bbe9.
feature: added new methods safe_set and safe_get to ngx.shared.DICT objects, which never override existing unexpired items but immediately return nil and a "no memory" string message when running out of storage. thanks Matthieu Tourne for requesting this.
api-change: the ngx.re.match, ngx.re.gmatch, ngx.re.sub, and ngx.re.gsub functions used to throw Lua exceptions aggressively for all the error conditions; now they return an additonal string describing the error for almost all common errors instead of throwing exceptions, including pcre compile-time and exec-time failures. thanks Matthieu Tourne for requesting this change.