Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Browse files

added change log for v0.4.0 and also documented the way to confirm th…

…at pcre jit is actually enabled.
  • Loading branch information...
commit b166210bcfb0620c43f12ce4c2cc468362b481db 1 parent bc9142c
@agentzh agentzh authored
Showing with 306 additions and 0 deletions.
  1. +181 −0 README
  2. +63 −0 README.markdown
  3. +62 −0 doc/HttpLuaModule.wiki
View
181 README
@@ -2641,6 +2641,14 @@ Nginx API for Lua
This method requires the PCRE library enabled in Nginx. (Known Issue
With Special PCRE Sequences).
+ To confirm that PCRE JIT is indeed enabled, it's required to enable the
+ debugging logs in your Nginx build (by passing the "--with-debug" option
+ to your Nginx or ngx_openresty's "./configure" script) and enable the
+ "debug" error log level in your "error_log" directive, and then you can
+ see the following message if PCRE JIT actually works:
+
+ pcre JIT compiling result: 1
+
This feature was introduced in the "v0.2.1rc11" release.
ngx.re.gmatch
@@ -3474,7 +3482,180 @@ TODO
* add "stat" mode similar to "mod_lua".
Changes
+ v0.4.0
+ 11 January, 2012
+
+ * bugfix: fixed a bug when the both the main request and the
+ subrequest are POST requests with a body: we should not forward the
+ main request's "Content-Length" headers to the user subrequests.
+ thanks 朱峰.
+
+ * feature: implemented the API for reading response headers from
+ within Lua: "value = ngx.header.HEADER", see ngx.header.HEADER.
+
+ * bugfix: fixed a bug when setting a multi-value response header to a
+ single value (via writing to ngx.header.HEADER): the single value
+ will be repeated on each old value.
+
+ * bugfix: fixed an issue in ngx.redirect, ngx.exit, and ngx.exec:
+ these function calls would be intercepted by Lua "pcall"/"xpcall"
+ because they used Lua exceptions; now they use Lua yield just as
+ ngx.location.capture. thanks @hugozhu for reporting this.
+
+ * feature: now we also return the "Last-Modified" header (if any) for
+ the subrequest response object. thanks @cyberty and sexybabes.
+
+ * feature: now ngx.exec supports Lua table as the second args argument
+ value. thanks sexybabes.
+
+ * feature: implemented the ngx.headers_sent API to check if response
+ headers are sent (by ngx_lua). thanks @hugozhu.
+
+ * feature: exposes the CRC-32 API of the Nginx core to the Lua land,
+ in the form of the ngx.crc32_short and ngx.crc32_long methods.
+ thanks @Lance.
+
+ * feature: now for HTTP 1.0 requests, we disable the automatic full
+ buffering mode if the user sets the "Content-Length" response header
+ before sending out the headers. this allows streaming output for
+ HTTP 1.0 requests if the content length can be calculated
+ beforehand. thanks 李子义.
+
+ * bugfix: now we properly support setting the "Cache-Control" response
+ header via the ngx.header.HEADER interface.
+
+ * bugfix: no longer set header hash to 1. use the "ngx_hash_key_lc"
+ instead.
+
+ * bugfix: calling ngx.exec to jump to a named location did not clear
+ the context object of LuaNginxModule properly and might cause evil
+ problems. thanks Nginx User.
+
+ * bugfix: now we explicitly clear all the modules' contexts before
+ dump to named location with ngx.exec.
+
+ * feature: implemented ngx.req.set_uri and ngx.req.set_uri_args to
+ emulate [[HttpRewriteModule]]'s rewrite directive. thanks Vladimir
+ Protasov (utros) and Nginx User.
+
+ * bugfix: now we skip rewrite phase Lua handlers altogether if
+ [[HttpRewriteModule]]'s rewrite directive issue a location re-lookup
+ by changing URIs (but not including "rewrite ... break"). thanks
+ Nginx User.
+
+ * feature: added constant "ngx.HTTP_METHOD_NOT_IMPLEMENTED (501)".
+ thanks Nginx User.
+
+ * feature: added new Lua functions ngx.req.read_body,
+ ngx.req.discard_body, ngx.req.get_body_data, and
+ ngx.req.get_body_file. thanks Tzury Bar Yochay for funding the
+ development work.
+
+ * bugfix: fixed hanging issues when using ngx.exec within
+ rewrite_by_lua and access_by_lua. thanks Nginx User for reporting
+ it.
+
+ * feature: added new Lua API ngx.req.set_body_file. thanks Tzury Bar
+ Yochay for funding the development work.
+
+ * feature: added new Lua API ngx.req.set_body_data. thanks Tzury Bar
+ Yochay for funding the development work.
+
+ * bugfix: lua_need_request_body should not skip requests with methods
+ other than "POST" and "PUT". thanks Nginx User.
+
+ * bugfix: no longer free request body buffers that are not allocated
+ by ourselves.
+
+ * bugfix: now we allow setting ngx.var.VARIABLE to nil.
+
+ * feature: added new directive lua_shared_dict.
+
+ * feature: added Lua API for the shm-based dictionary, see
+ ngx.shared.DICT.
+
+ * bugfix: fixed spots of -Werror=unused-but-set-variable warning
+ issued by gcc 4.6.0.
+
+ * bugfix: ndk.set_var.DIRECTIVE had a memory issue and might pass
+ empty argument values to the directive being called. thanks
+ dannynoonan.
+
+ * feature: added the "ctx" option to ngx.location.capture: you can now
+ specify a custom Lua table to pass to the subrequest as its ngx.ctx.
+ thanks @hugozhu.
+
+ * feature: added the ngx.encode_args method to encode a Lua code to a
+ URI query string. thanks 郭颖 (0597虾).
+
+ * feature: ngx.location.capture and ngx.exec now supports the same Lua
+ args table format as in ngx.encode_args. thanks 郭颖 (0597虾).
+
+ * bugfix: "Cache-Control" header modification might introduce empty
+ value headers when using with the standard HttpHeadersModule.
+
+ * feature: added ngx.hmac_sha1. thanks drdrxp.
+
+ * docs: documented the long-existent ngx.md5 and ngx.md5_bin APIs.
+
+ * docs: massive documentation improvements. thanks Nginx User.
+
+ * feature: added new regex options "j" and "d" to ngx.re.match,
+ ngx.re.gmatch, ngx.re.sub, and ngx.re.gsub so as to enable the PCRE
+ JIT mode and DFA mode, respectively. thanks @姜大炮 for providing the
+ patch.
+
+ * feature: added options "copy_all_vars" and "vars" to
+ ngx.location.capture and ngx.location.capture_multi. thanks Marcus
+ Clyne for the patch.
+
+ * feature: added new Lua API ngx.now to return the current time
+ (including the milliseconds part as the decimal part). thanks 林青.
+
+ * feature: added new Lua API ngx.update_time to forcibly updating
+ Nginx's time cache.
+
+ * feature: added "wait" boolean argument to ngx.flush to support
+ synchronous flushing: "ngx.flush(true)" will not return until all
+ the data has been flushed into the system send buffer or the send
+ timeout has expired.
+
+ * bugfix: now we check timed out downstream connections in our write
+ event handler.
+
+ * feature: added constant "ngx.HTTP_GATEWAY_TIMEOUT (504)" per Fry-kun
+ in github issue #73
+ (<https://github.com/chaoslawful/lua-nginx-module/issues/73>).
+
+ * bugfix: ngx.var.VARIABLE did not evaluate to "nil" when the Nginx
+ variable's "valid" flag is 0.
+
+ * bugfix: there were various places where we did not check the pointer
+ returned by the memory allocator.
+
+ * bugfix: ngx.req.set_header and ngx.req.clear_header did not handle
+ the "Accept-Encoding" request headers properly. thanks 天街夜色.
+
+ * bugfix: ngx.req.set_header might cause invalid memory reads because
+ Nginx request header values must be "NULL" terminated. thanks Maxim
+ Dounin.
+
+ * bugfix: removing builtin headers via ngx.req.clear_header and its
+ equivalent in huge request headers with 20+ entries could result in
+ data loss. thanks Chris Dumoulin.
+
+ * bugfix: ngx.req.get_uri_args and ngx.req.get_post_args now only
+ parse up to 100 arguments by default. but one can specify the
+ optional argument to these two methods to specify a custom maximum
+ number of args. thanks Tzury Bar Yochay for reporting this.
+
+ * bugfix: ngx.req.get_headers now only parse up to 100 request headers
+ by default. but one can specify the optional argument to this method
+ to specify a custom maximum number of headers.
+
v0.3.0
+ September 02, 2011
+
New features
* added the header_filter_by_lua and header_filter_by_lua_file
View
63 README.markdown
@@ -2563,6 +2563,12 @@ Note that, the `options` argument is not optional when the `ctx` argument is spe
This method requires the PCRE library enabled in Nginx. ([Known Issue With Special PCRE Sequences](http://wiki.nginx.org/HttpLuaModule#Special_PCRE_Sequences)).
+To confirm that PCRE JIT is indeed enabled, it's required to enable the debugging logs in your Nginx build (by passing the `--with-debug` option to your Nginx or ngx_openresty's `./configure` script) and enable the "debug" error log level in your `error_log` directive, and then you can see the following message if PCRE JIT actually works:
+
+
+ pcre JIT compiling result: 1
+
+
This feature was introduced in the `v0.2.1rc11` release.
ngx.re.gmatch
@@ -3230,8 +3236,65 @@ Longer Term
Changes
=======
+v0.4.0
+------
+
+11 January, 2012
+
+* bugfix: fixed a bug when the both the main request and the subrequest are POST requests with a body: we should not forward the main request's `Content-Length` headers to the user subrequests. thanks 朱峰.
+* feature: implemented the API for reading response headers from within Lua: `value = ngx.header.HEADER`, see [ngx.header.HEADER](http://wiki.nginx.org/HttpLuaModule#ngx.header.HEADER).
+* bugfix: fixed a bug when setting a multi-value response header to a single value (via writing to [ngx.header.HEADER](http://wiki.nginx.org/HttpLuaModule#ngx.header.HEADER)): the single value will be repeated on each old value.
+* bugfix: fixed an issue in [ngx.redirect](http://wiki.nginx.org/HttpLuaModule#ngx.redirect), [ngx.exit](http://wiki.nginx.org/HttpLuaModule#ngx.exit), and [ngx.exec](http://wiki.nginx.org/HttpLuaModule#ngx.exec): these function calls would be intercepted by Lua `pcall`/`xpcall` because they used Lua exceptions; now they use Lua yield just as [ngx.location.capture](http://wiki.nginx.org/HttpLuaModule#ngx.location.capture). thanks @hugozhu for reporting this.
+* feature: now we also return the `Last-Modified` header (if any) for the subrequest response object. thanks @cyberty and sexybabes.
+* feature: now [ngx.exec](http://wiki.nginx.org/HttpLuaModule#ngx.exec) supports Lua table as the second args argument value. thanks sexybabes.
+* feature: implemented the [ngx.headers_sent](http://wiki.nginx.org/HttpLuaModule#ngx.headers_sent) API to check if response headers are sent (by ngx_lua). thanks @hugozhu.
+* feature: exposes the CRC-32 API of the Nginx core to the Lua land, in the form of the [ngx.crc32_short](http://wiki.nginx.org/HttpLuaModule#ngx.crc32_short) and [ngx.crc32_long](http://wiki.nginx.org/HttpLuaModule#ngx.crc32_long) methods. thanks @Lance.
+* feature: now for HTTP 1.0 requests, we disable the automatic full buffering mode if the user sets the `Content-Length` response header before sending out the headers. this allows streaming output for HTTP 1.0 requests if the content length can be calculated beforehand. thanks 李子义.
+* bugfix: now we properly support setting the `Cache-Control` response header via the [ngx.header.HEADER](http://wiki.nginx.org/HttpLuaModule#ngx.header.HEADER) interface.
+* bugfix: no longer set header hash to `1`. use the `ngx_hash_key_lc` instead.
+* bugfix: calling [ngx.exec](http://wiki.nginx.org/HttpLuaModule#ngx.exec) to jump to a named location did not clear the context object of LuaNginxModule properly and might cause evil problems. thanks Nginx User.
+* bugfix: now we explicitly clear all the modules' contexts before dump to named location with [ngx.exec](http://wiki.nginx.org/HttpLuaModule#ngx.exec).
+* feature: implemented [ngx.req.set_uri](http://wiki.nginx.org/HttpLuaModule#ngx.req.set_uri) and [ngx.req.set_uri_args](http://wiki.nginx.org/HttpLuaModule#ngx.req.set_uri_args) to emulate [HttpRewriteModule](http://wiki.nginx.org/HttpRewriteModule)'s [rewrite](http://wiki.nginx.org/HttpRewriteModule#rewrite) directive. thanks Vladimir Protasov (utros) and Nginx User.
+* bugfix: now we skip rewrite phase Lua handlers altogether if [HttpRewriteModule](http://wiki.nginx.org/HttpRewriteModule)'s [rewrite](http://wiki.nginx.org/HttpRewriteModule#rewrite) directive issue a location re-lookup by changing URIs (but not including `rewrite ... break`). thanks Nginx User.
+* feature: added constant `ngx.HTTP_METHOD_NOT_IMPLEMENTED (501)`. thanks Nginx User.
+* feature: added new Lua functions [ngx.req.read_body](http://wiki.nginx.org/HttpLuaModule#ngx.req.read_body), [ngx.req.discard_body](http://wiki.nginx.org/HttpLuaModule#ngx.req.discard_body), [ngx.req.get_body_data](http://wiki.nginx.org/HttpLuaModule#ngx.req.get_body_data), and [ngx.req.get_body_file](http://wiki.nginx.org/HttpLuaModule#ngx.req.get_body_file). thanks Tzury Bar Yochay for funding the development work.
+* bugfix: fixed hanging issues when using [ngx.exec](http://wiki.nginx.org/HttpLuaModule#ngx.exec) within [rewrite_by_lua](http://wiki.nginx.org/HttpLuaModule#rewrite_by_lua) and [access_by_lua](http://wiki.nginx.org/HttpLuaModule#access_by_lua). thanks Nginx User for reporting it.
+* feature: added new Lua API [ngx.req.set_body_file](http://wiki.nginx.org/HttpLuaModule#ngx.req.set_body_file). thanks Tzury Bar Yochay for funding the development work.
+* feature: added new Lua API [ngx.req.set_body_data](http://wiki.nginx.org/HttpLuaModule#ngx.req.set_body_data). thanks Tzury Bar Yochay for funding the development work.
+* bugfix: [lua_need_request_body](http://wiki.nginx.org/HttpLuaModule#lua_need_request_body) should not skip requests with methods other than `POST` and `PUT`. thanks Nginx User.
+* bugfix: no longer free request body buffers that are not allocated by ourselves.
+* bugfix: now we allow setting [ngx.var.VARIABLE](http://wiki.nginx.org/HttpLuaModule#ngx.var.VARIABLE) to nil.
+* feature: added new directive [lua_shared_dict](http://wiki.nginx.org/HttpLuaModule#lua_shared_dict).
+* feature: added Lua API for the shm-based dictionary, see [ngx.shared.DICT](http://wiki.nginx.org/HttpLuaModule#ngx.shared.DICT).
+* bugfix: fixed spots of -Werror=unused-but-set-variable warning issued by gcc 4.6.0.
+* bugfix: [ndk.set_var.DIRECTIVE](http://wiki.nginx.org/HttpLuaModule#ndk.set_var.DIRECTIVE) had a memory issue and might pass empty argument values to the directive being called. thanks dannynoonan.
+* feature: added the `ctx` option to [ngx.location.capture](http://wiki.nginx.org/HttpLuaModule#ngx.location.capture): you can now specify a custom Lua table to pass to the subrequest as its [ngx.ctx](http://wiki.nginx.org/HttpLuaModule#ngx.ctx). thanks @hugozhu.
+* feature: added the [ngx.encode_args](http://wiki.nginx.org/HttpLuaModule#ngx.encode_args) method to encode a Lua code to a URI query string. thanks 郭颖 (0597虾).
+* feature: [ngx.location.capture](http://wiki.nginx.org/HttpLuaModule#ngx.location.capture) and [ngx.exec](http://wiki.nginx.org/HttpLuaModule#ngx.exec) now supports the same Lua args table format as in ngx.encode_args. thanks 郭颖 (0597虾).
+* bugfix: `Cache-Control` header modification might introduce empty value headers when using with the standard HttpHeadersModule.
+* feature: added [ngx.hmac_sha1](http://wiki.nginx.org/HttpLuaModule#ngx.hmac_sha1). thanks drdrxp.
+* docs: documented the long-existent [ngx.md5](http://wiki.nginx.org/HttpLuaModule#ngx.md5) and [ngx.md5_bin](http://wiki.nginx.org/HttpLuaModule#ngx.md5_bin) APIs.
+* docs: massive documentation improvements. thanks Nginx User.
+* feature: added new regex options `j` and `d` to [ngx.re.match](http://wiki.nginx.org/HttpLuaModule#ngx.re.match), [ngx.re.gmatch](http://wiki.nginx.org/HttpLuaModule#ngx.re.gmatch), [ngx.re.sub](http://wiki.nginx.org/HttpLuaModule#ngx.re.sub), and [ngx.re.gsub](http://wiki.nginx.org/HttpLuaModule#ngx.re.gsub) so as to enable the PCRE JIT mode and DFA mode, respectively. thanks @姜大炮 for providing the patch.
+* feature: added options `copy_all_vars` and `vars` to [ngx.location.capture](http://wiki.nginx.org/HttpLuaModule#ngx.location.capture) and [ngx.location.capture_multi](http://wiki.nginx.org/HttpLuaModule#ngx.location.capture_multi). thanks Marcus Clyne for the patch.
+* feature: added new Lua API [ngx.now](http://wiki.nginx.org/HttpLuaModule#ngx.now) to return the current time (including the milliseconds part as the decimal part). thanks 林青.
+* feature: added new Lua API [ngx.update_time](http://wiki.nginx.org/HttpLuaModule#ngx.update_time) to forcibly updating Nginx's time cache.
+* feature: added `wait` boolean argument to [ngx.flush](http://wiki.nginx.org/HttpLuaModule#ngx.flush) to support synchronous flushing: `ngx.flush(true)` will not return until all the data has been flushed into the system send buffer or the send timeout has expired.
+* bugfix: now we check timed out downstream connections in our write event handler.
+* feature: added constant `ngx.HTTP_GATEWAY_TIMEOUT (504)` per Fry-kun in [github issue #73](https://github.com/chaoslawful/lua-nginx-module/issues/73).
+* bugfix: [ngx.var.VARIABLE](http://wiki.nginx.org/HttpLuaModule#ngx.var.VARIABLE) did not evaluate to `nil` when the Nginx variable's `valid` flag is `0`.
+* bugfix: there were various places where we did not check the pointer returned by the memory allocator.
+* bugfix: [ngx.req.set_header](http://wiki.nginx.org/HttpLuaModule#ngx.req.set_header) and [ngx.req.clear_header](http://wiki.nginx.org/HttpLuaModule#ngx.req.clear_header) did not handle the `Accept-Encoding` request headers properly. thanks 天街夜色.
+* bugfix: [ngx.req.set_header](http://wiki.nginx.org/HttpLuaModule#ngx.req.set_header) might cause invalid memory reads because Nginx request header values must be `NULL` terminated. thanks Maxim Dounin.
+* bugfix: removing builtin headers via [ngx.req.clear_header](http://wiki.nginx.org/HttpLuaModule#ngx.req.clear_header) and its equivalent in huge request headers with 20+ entries could result in data loss. thanks Chris Dumoulin.
+* bugfix: [ngx.req.get_uri_args](http://wiki.nginx.org/HttpLuaModule#ngx.req.get_uri_args) and [ngx.req.get_post_args](http://wiki.nginx.org/HttpLuaModule#ngx.req.get_post_args) now only parse up to `100` arguments by default. but one can specify the optional argument to these two methods to specify a custom maximum number of args. thanks Tzury Bar Yochay for reporting this.
+* bugfix: [ngx.req.get_headers](http://wiki.nginx.org/HttpLuaModule#ngx.req.get_headers) now only parse up to `100` request headers by default. but one can specify the optional argument to this method to specify a custom maximum number of headers.
+
v0.3.0
------
+
+September 02, 2011
+
**New features**
* added the [header_filter_by_lua](http://wiki.nginx.org/HttpLuaModule#header_filter_by_lua) and [header_filter_by_lua_file](http://wiki.nginx.org/HttpLuaModule#header_filter_by_lua_file) directives. thanks Liseen Wan (万珣新).
View
62 doc/HttpLuaModule.wiki
@@ -2483,6 +2483,12 @@ Note that, the <code>options</code> argument is not optional when the <code>ctx<
This method requires the PCRE library enabled in Nginx. ([[#Special PCRE Sequences|Known Issue With Special PCRE Sequences]]).
+To confirm that PCRE JIT is indeed enabled, it's required to enable the debugging logs in your Nginx build (by passing the <code>--with-debug</code> option to your Nginx or ngx_openresty's <code>./configure</code> script) and enable the "debug" error log level in your <code>error_log</code> directive, and then you can see the following message if PCRE JIT actually works:
+
+<geshi lang="text">
+ pcre JIT compiling result: 1
+</geshi>
+
This feature was introduced in the <code>v0.2.1rc11</code> release.
== ngx.re.gmatch ==
@@ -3123,7 +3129,63 @@ Please report bugs or submit patches by:
= Changes =
+== v0.4.0 ==
+
+11 January, 2012
+
+* bugfix: fixed a bug when the both the main request and the subrequest are POST requests with a body: we should not forward the main request's <code>Content-Length</code> headers to the user subrequests. thanks 朱峰.
+* feature: implemented the API for reading response headers from within Lua: <code>value = ngx.header.HEADER</code>, see [[#ngx.header.HEADER|ngx.header.HEADER]].
+* bugfix: fixed a bug when setting a multi-value response header to a single value (via writing to [[#ngx.header.HEADER|ngx.header.HEADER]]): the single value will be repeated on each old value.
+* bugfix: fixed an issue in [[#ngx.redirect|ngx.redirect]], [[#ngx.exit|ngx.exit]], and [[#ngx.exec|ngx.exec]]: these function calls would be intercepted by Lua <code>pcall</code>/<code>xpcall</code> because they used Lua exceptions; now they use Lua yield just as [[#ngx.location.capture|ngx.location.capture]]. thanks @hugozhu for reporting this.
+* feature: now we also return the <code>Last-Modified</code> header (if any) for the subrequest response object. thanks @cyberty and sexybabes.
+* feature: now [[#ngx.exec|ngx.exec]] supports Lua table as the second args argument value. thanks sexybabes.
+* feature: implemented the [[#ngx.headers_sent|ngx.headers_sent]] API to check if response headers are sent (by ngx_lua). thanks @hugozhu.
+* feature: exposes the CRC-32 API of the Nginx core to the Lua land, in the form of the [[#ngx.crc32_short|ngx.crc32_short]] and [[#ngx.crc32_long|ngx.crc32_long]] methods. thanks @Lance.
+* feature: now for HTTP 1.0 requests, we disable the automatic full buffering mode if the user sets the <code>Content-Length</code> response header before sending out the headers. this allows streaming output for HTTP 1.0 requests if the content length can be calculated beforehand. thanks 李子义.
+* bugfix: now we properly support setting the <code>Cache-Control</code> response header via the [[#ngx.header.HEADER|ngx.header.HEADER]] interface.
+* bugfix: no longer set header hash to <code>1</code>. use the <code>ngx_hash_key_lc</code> instead.
+* bugfix: calling [[#ngx.exec|ngx.exec]] to jump to a named location did not clear the context object of LuaNginxModule properly and might cause evil problems. thanks Nginx User.
+* bugfix: now we explicitly clear all the modules' contexts before dump to named location with [[#ngx.exec|ngx.exec]].
+* feature: implemented [[#ngx.req.set_uri|ngx.req.set_uri]] and [[#ngx.req.set_uri_args|ngx.req.set_uri_args]] to emulate [[HttpRewriteModule]]'s [[HttpRewriteModule#rewrite|rewrite]] directive. thanks Vladimir Protasov (utros) and Nginx User.
+* bugfix: now we skip rewrite phase Lua handlers altogether if [[HttpRewriteModule]]'s [[HttpRewriteModule#rewrite|rewrite]] directive issue a location re-lookup by changing URIs (but not including <code>rewrite ... break</code>). thanks Nginx User.
+* feature: added constant <code>ngx.HTTP_METHOD_NOT_IMPLEMENTED (501)</code>. thanks Nginx User.
+* feature: added new Lua functions [[#ngx.req.read_body|ngx.req.read_body]], [[#ngx.req.discard_body|ngx.req.discard_body]], [[#ngx.req.get_body_data|ngx.req.get_body_data]], and [[#ngx.req.get_body_file|ngx.req.get_body_file]]. thanks Tzury Bar Yochay for funding the development work.
+* bugfix: fixed hanging issues when using [[#ngx.exec|ngx.exec]] within [[#rewrite_by_lua|rewrite_by_lua]] and [[#access_by_lua|access_by_lua]]. thanks Nginx User for reporting it.
+* feature: added new Lua API [[#ngx.req.set_body_file|ngx.req.set_body_file]]. thanks Tzury Bar Yochay for funding the development work.
+* feature: added new Lua API [[#ngx.req.set_body_data|ngx.req.set_body_data]]. thanks Tzury Bar Yochay for funding the development work.
+* bugfix: [[#lua_need_request_body|lua_need_request_body]] should not skip requests with methods other than <code>POST</code> and <code>PUT</code>. thanks Nginx User.
+* bugfix: no longer free request body buffers that are not allocated by ourselves.
+* bugfix: now we allow setting [[#ngx.var.VARIABLE|ngx.var.VARIABLE]] to nil.
+* feature: added new directive [[#lua_shared_dict|lua_shared_dict]].
+* feature: added Lua API for the shm-based dictionary, see [[#ngx.shared.DICT|ngx.shared.DICT]].
+* bugfix: fixed spots of -Werror=unused-but-set-variable warning issued by gcc 4.6.0.
+* bugfix: [[#ndk.set_var.DIRECTIVE|ndk.set_var.DIRECTIVE]] had a memory issue and might pass empty argument values to the directive being called. thanks dannynoonan.
+* feature: added the <code>ctx</code> option to [[#ngx.location.capture|ngx.location.capture]]: you can now specify a custom Lua table to pass to the subrequest as its [[#ngx.ctx|ngx.ctx]]. thanks @hugozhu.
+* feature: added the [[#ngx.encode_args|ngx.encode_args]] method to encode a Lua code to a URI query string. thanks 郭颖 (0597虾).
+* feature: [[#ngx.location.capture|ngx.location.capture]] and [[#ngx.exec|ngx.exec]] now supports the same Lua args table format as in ngx.encode_args. thanks 郭颖 (0597虾).
+* bugfix: <code>Cache-Control</code> header modification might introduce empty value headers when using with the standard HttpHeadersModule.
+* feature: added [[#ngx.hmac_sha1|ngx.hmac_sha1]]. thanks drdrxp.
+* docs: documented the long-existent [[#ngx.md5|ngx.md5]] and [[#ngx.md5_bin|ngx.md5_bin]] APIs.
+* docs: massive documentation improvements. thanks Nginx User.
+* feature: added new regex options <code>j</code> and <code>d</code> to [[#ngx.re.match|ngx.re.match]], [[#ngx.re.gmatch|ngx.re.gmatch]], [[#ngx.re.sub|ngx.re.sub]], and [[#ngx.re.gsub|ngx.re.gsub]] so as to enable the PCRE JIT mode and DFA mode, respectively. thanks @姜大炮 for providing the patch.
+* feature: added options <code>copy_all_vars</code> and <code>vars</code> to [[#ngx.location.capture|ngx.location.capture]] and [[#ngx.location.capture_multi|ngx.location.capture_multi]]. thanks Marcus Clyne for the patch.
+* feature: added new Lua API [[#ngx.now|ngx.now]] to return the current time (including the milliseconds part as the decimal part). thanks 林青.
+* feature: added new Lua API [[#ngx.update_time|ngx.update_time]] to forcibly updating Nginx's time cache.
+* feature: added <code>wait</code> boolean argument to [[#ngx.flush|ngx.flush]] to support synchronous flushing: <code>ngx.flush(true)</code> will not return until all the data has been flushed into the system send buffer or the send timeout has expired.
+* bugfix: now we check timed out downstream connections in our write event handler.
+* feature: added constant <code>ngx.HTTP_GATEWAY_TIMEOUT (504)</code> per Fry-kun in [https://github.com/chaoslawful/lua-nginx-module/issues/73 github issue #73].
+* bugfix: [[#ngx.var.VARIABLE|ngx.var.VARIABLE]] did not evaluate to <code>nil</code> when the Nginx variable's <code>valid</code> flag is <code>0</code>.
+* bugfix: there were various places where we did not check the pointer returned by the memory allocator.
+* bugfix: [[#ngx.req.set_header|ngx.req.set_header]] and [[#ngx.req.clear_header|ngx.req.clear_header]] did not handle the <code>Accept-Encoding</code> request headers properly. thanks 天街夜色.
+* bugfix: [[#ngx.req.set_header|ngx.req.set_header]] might cause invalid memory reads because Nginx request header values must be <code>NULL</code> terminated. thanks Maxim Dounin.
+* bugfix: removing builtin headers via [[#ngx.req.clear_header|ngx.req.clear_header]] and its equivalent in huge request headers with 20+ entries could result in data loss. thanks Chris Dumoulin.
+* bugfix: [[#ngx.req.get_uri_args|ngx.req.get_uri_args]] and [[#ngx.req.get_post_args|ngx.req.get_post_args]] now only parse up to <code>100</code> arguments by default. but one can specify the optional argument to these two methods to specify a custom maximum number of args. thanks Tzury Bar Yochay for reporting this.
+* bugfix: [[#ngx.req.get_headers|ngx.req.get_headers]] now only parse up to <code>100</code> request headers by default. but one can specify the optional argument to this method to specify a custom maximum number of headers.
+
== v0.3.0 ==
+
+September 02, 2011
+
'''New features'''
* added the [[#header_filter_by_lua|header_filter_by_lua]] and [[#header_filter_by_lua_file|header_filter_by_lua_file]] directives. thanks Liseen Wan (万珣新).
Please sign in to comment.
Something went wrong with that request. Please try again.