From 8a2667e0d64fbb5940bb9e2ad4705df5d0788e50 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?agentzh=20=28=E7=AB=A0=E4=BA=A6=E6=98=A5=29?= Date: Mon, 6 Aug 2012 11:16:27 -0700 Subject: [PATCH] updated the change logs for 1.2.1.11. --- index.html | 4 ++-- index.xml | 24 ++++++++++++------------ 2 files changed, 14 insertions(+), 14 deletions(-) diff --git a/index.html b/index.html index b45c27aa7..a6d1000c3 100755 --- a/index.html +++ b/index.html @@ -1720,10 +1720,10 @@ See ChangeLog1000011 for change log for ngx_openresty 1.0.11.x. -
+
<<toolbar permalink>>
 ! Devel Release 1.2.1.11 - 5 August 2012
-* bundled LuaRestyDNSLibrary 0.04 and enabled it by default: https://github.com/agentzh/lua-resty-dns
+* bundled LuaRestyDNSLibrary 0.04 and enabled it by default: https://github.com/agentzh/lua-resty-dns it is a nonblocking DNS (Domain Name System) resolver library based on LuaNginxModule's cosocket API.
 * upgraded LuaNginxModule to 0.5.12.
 ** bugfix: the [[UDP cosocket object|http://wiki.nginx.org/HttpLuaModule#ngx.socket.udp]] could no longer be used after an read or write error happened.
 ** bugfix: [[ngx.exit(status)|http://wiki.nginx.org/HttpLuaModule#ngx.exit]] always resulted in {{{200 OK}}} response status when status > 200 and status < 300. thanks Nginx User for reporting this issue.
diff --git a/index.xml b/index.xml
index 5768b29c2..8782fa39c 100755
--- a/index.xml
+++ b/index.xml
@@ -5,29 +5,29 @@
 a powerful web app server by extending nginx 
 en
 Copyright 2012 ZhangYichun
-Mon, 06 Aug 2012 06:55:08 GMT
-Mon, 06 Aug 2012 06:55:08 GMT
+Mon, 06 Aug 2012 18:16:01 GMT
+Mon, 06 Aug 2012 18:16:01 GMT
 http://blogs.law.harvard.edu/tech/rss
 TiddlyWiki 2.6.2
 
+ChangeLog1002001
+<a tiddler="ChangeLog1002001" commandname="permalink" class="button command_permalink" title="Permalink for this tiddler" href="javascript:;">permalink</a><br><h1> Devel Release 1.2.1.11 - 5 August 2012</h1><ul><li> bundled <a tiddlylink="LuaRestyDNSLibrary" refresh="link" target="_blank" title="External link to null#LuaRestyDNSLibrary" href="null#LuaRestyDNSLibrary" class="externalLink null">LuaRestyDNSLibrary</a> 0.04 and enabled it by default: <a target="_blank" title="External link to https://github.com/agentzh/lua-resty-dns" href="https://github.com/agentzh/lua-resty-dns" class="externalLink">https://github.com/agentzh/lua-resty-dns</a> it is a nonblocking DNS (Domain Name System) resolver library based on <a tiddlylink="LuaNginxModule" refresh="link" target="_blank" title="External link to null#LuaNginxModule" href="null#LuaNginxModule" class="externalLink null">LuaNginxModule</a>'s cosocket API.</li><li> upgraded <a tiddlylink="LuaNginxModule" refresh="link" target="_blank" title="External link to null#LuaNginxModule" href="null#LuaNginxModule" class="externalLink null">LuaNginxModule</a> to 0.5.12.<ul><li> bugfix: the <a target="_blank" title="External link to http://wiki.nginx.org/HttpLuaModule#ngx.socket.udp" href="http://wiki.nginx.org/HttpLuaModule#ngx.socket.udp" class="externalLink">UDP cosocket object</a> could no longer be used after an read or write error happened.</li><li> bugfix: <a target="_blank" title="External link to http://wiki.nginx.org/HttpLuaModule#ngx.exit" href="http://wiki.nginx.org/HttpLuaModule#ngx.exit" class="externalLink">ngx.exit(status)</a> always resulted in <code>200 OK</code> response status when status &gt; 200 and status &lt; 300. thanks Nginx User for reporting this issue.</li></ul></li><li> upgraded <a tiddlylink="HeadersMoreNginxModule" refresh="link" target="_blank" title="External link to null#HeadersMoreNginxModule" href="null#HeadersMoreNginxModule" class="externalLink null">HeadersMoreNginxModule</a> to 0.18.<ul><li> bugfix: fixed a <code>set-but-not-read</code> warning from the <code>clang</code> static code analyzer.</li><li> fixed compatibility with nginx 0.7.65. thanks Banping for reporting this.</li></ul></li><li> upgraded <a tiddlylink="DrizzleNginxModule" refresh="link" target="_blank" title="External link to null#DrizzleNginxModule" href="null#DrizzleNginxModule" class="externalLink null">DrizzleNginxModule</a> to 0.1.2.<ul><li> minor code cleanup in the built-in connection pool.</li></ul></li></ul><h1> Devel Release 1.2.1.9 - 30 July 2012</h1><ul><li> upgraded <a tiddlylink="LuaRestyMySQLLibrary" refresh="link" target="_blank" title="External link to null#LuaRestyMySQLLibrary" href="null#LuaRestyMySQLLibrary" class="externalLink null">LuaRestyMySQLLibrary</a> to 0.10.<ul><li> bugfix: the MySQL <code>bigint</code> fields might overflow when converting to lua numbers. now we no longer convert such fields into Lua numbers and instead, just treat them as Lua strings. thanks Lance Li for reporting this issue.</li></ul></li><li> upgraded <a tiddlylink="LuaNginxModule" refresh="link" target="_blank" title="External link to null#LuaNginxModule" href="null#LuaNginxModule" class="externalLink null">LuaNginxModule</a> to 0.5.11.<ul><li> feature: added new Lua API <a target="_blank" title="External link to http://wiki.nginx.org/HttpLuaModule#ngx.req.init_body" href="http://wiki.nginx.org/HttpLuaModule#ngx.req.init_body" class="externalLink">ngx.req.init_body</a>, <a target="_blank" title="External link to http://wiki.nginx.org/HttpLuaModule#ngx.req.append_body" href="http://wiki.nginx.org/HttpLuaModule#ngx.req.append_body" class="externalLink">ngx.req.append_body</a>, and <a target="_blank" title="External link to http://wiki.nginx.org/HttpLuaModule#ngx.req.finish_body" href="http://wiki.nginx.org/HttpLuaModule#ngx.req.finish_body" class="externalLink">ngx.req.finish_body</a>. thanks Matthieu Tourne for the patches. These new functions can be used with the existing "downstream cosocket API" (provided by <a target="_blank" title="External link to http://wiki.nginx.org/HttpLuaModule#ngx.req.socket" href="http://wiki.nginx.org/HttpLuaModule#ngx.req.socket" class="externalLink">ngx.req.socket</a>) to implement efficient Nginx "input filters" in pure Lua.</li><li> feature: added new Lua API <a target="_blank" title="External link to http://wiki.nginx.org/HttpLuaModule#ngx.get_phase" href="http://wiki.nginx.org/HttpLuaModule#ngx.get_phase" class="externalLink">ngx.get_phase</a> for retrieving the current running phase of the Lua code being executed. thanks James Hurst for the patch.</li><li> feature: added the first dtrace static probe: <code>nginx_lua:::http-lua-register-preload-package</code> and <code>nginx_lua:::http-lua-req-socket-consume-preread</code>.</li><li> bugfix: <code>buffer error</code> would happen when the <code>args</code> option table to <a target="_blank" title="External link to http://wiki.nginx.org/HttpLuaModule#ngx.location.capture" href="http://wiki.nginx.org/HttpLuaModule#ngx.location.capture" class="externalLink">ngx.location.capture</a> (and <a target="_blank" title="External link to http://wiki.nginx.org/HttpLuaModule#ngx.encode_args" href="http://wiki.nginx.org/HttpLuaModule#ngx.encode_args" class="externalLink">ngx.encode_args</a>) contained a multi-value argument whose key also required URI escaping. thanks Matthieu Tourne for reporting this.</li><li> bugfix: <a target="_blank" title="External link to http://wiki.nginx.org/HttpLuaModule#ngx.re.gmatch" href="http://wiki.nginx.org/HttpLuaModule#ngx.re.gmatch" class="externalLink">ngx.re.gmatch()</a> might result in segmentation faults during nginx request cleanups if the iterator returned by <a target="_blank" title="External link to http://wiki.nginx.org/HttpLuaModule#ngx.re.gmatch" href="http://wiki.nginx.org/HttpLuaModule#ngx.re.gmatch" class="externalLink">ngx.re.gmatch()</a> was collected (by Lua GC) before request cleanups. this bug had appeared in <a tiddlylink="LuaNginxModule" refresh="link" target="_blank" title="External link to null#LuaNginxModule" href="null#LuaNginxModule" class="externalLink null">LuaNginxModule</a> 0.5.0rc30 (and <a tiddlylink="OpenResty" refresh="link" target="_blank" title="External link to null#OpenResty" href="null#OpenResty" class="externalLink null">OpenResty</a> 1.0.15.9). thanks Wayne for reporting this issue.</li><li> bugfix: 3rd-party nginx C modules that use the public C API function, <code>ngx_http_lua_add_package_preload</code>, could result in segmentation faults at nginx server startup due to uninitialized Lua VM pointer. thanks Ray Bejjani for reporting this.</li><li> bugfix: Proper error messages were not always thrown when the iterator returned by <a target="_blank" title="External link to http://wiki.nginx.org/HttpLuaModule#ngx.re.gmatch" href="http://wiki.nginx.org/HttpLuaModule#ngx.re.gmatch" class="externalLink">ngx.re.gmatch</a> was (incorrectly) used in the context of another nginx request.</li><li> bugfix: fixed several Clang compilation warnings.</li></ul></li><li> feature: applied the <a target="_blank" title="External link to https://github.com/agentzh/ngx_openresty/blob/master/patches/nginx-1.2.1-dtrace.patch" href="https://github.com/agentzh/ngx_openresty/blob/master/patches/nginx-1.2.1-dtrace.patch" class="externalLink">dtrace patch</a> to the nginx core that adds dtrace static probing support for both the Nginx core and 3rd-party modules to the Nginx build system. this support can be enabled by <code>./configure --with-dtrace-probes</code>.</li><li> feature: added new dtrace static probes to the Nginx core<ul><li> added 8 kinds of static probes to the subrequest mechanism: <code>nginx:::http-subrequest-cycle</code>, <code>nginx:::http-subrequest-start</code>, <code>nginx:::http-subrequest-finalize-writing</code>, <code>nginx:::http-subrequest-finalize-nonactive</code>, <code>nginx:::http-subrequest-wake-parent</code>, <code>nginx:::http-subrequest-done</code>, <code>nginx:::http-subrequest-post-start</code>, and <code>nginx:::http-subrequest-post-done</code>.</li><li> added 2 kinds of static probes to the standard request body reader: <code>nginx:::http-read-body-abort</code> and <code>nginx:::http-read-body-done</code>.</li><li> added 2 kinds of static probes to the standard main request header reader: <code>nginx:::http-read-req-line-done</code> and <code>nginx:::http-read-req-header-done</code>.</li><li> added 1 kind of static probes to the configuration loader: <code>nginx:::http-module-post-config</code>.</li><li> added the <code>nginx.stp</code> stapset script for systemtap: <a target="_blank" title="External link to https://github.com/agentzh/nginx-dtrace/blob/master/src/dtrace/nginx.stp" href="https://github.com/agentzh/nginx-dtrace/blob/master/src/dtrace/nginx.stp" class="externalLink">https://github.com/agentzh/nginx-dtrace/blob/master/src/dtrace/nginx.stp</a></li><li> added the <a target="_blank" title="External link to https://github.com/agentzh/nginx-dtrace/blob/master/src/dtrace/stap-nginx" href="https://github.com/agentzh/nginx-dtrace/blob/master/src/dtrace/stap-nginx" class="externalLink">stap-nginx</a> wrapper sh script for systemtap's <code>stap</code> command for nginx. this script will be installed to <code>$PREFIX/sbin/</code> when the <code>./configure</code> option <code>--with-dtrace-probes</code> is specified.</li></ul></li><li> bugfix: fixed an issue regarding subrequests in <a target="_blank" title="External link to https://github.com/agentzh/ngx_openresty/blob/master/patches/nginx-1.2.1-allow_request_body_updating.patch" href="https://github.com/agentzh/ngx_openresty/blob/master/patches/nginx-1.2.1-allow_request_body_updating.patch" class="externalLink">allow_request_body_updating.patch</a>.</li></ul><h1> Devel Release 1.2.1.7 - 14 July 2012</h1><ul><li> upraded <a tiddlylink="HeadersMoreNginxModule" refresh="link" target="_blank" title="External link to null#HeadersMoreNginxModule" href="null#HeadersMoreNginxModule" class="externalLink null">HeadersMoreNginxModule</a> to 0.17.<ul><li> bugfix: <a target="_blank" title="External link to http://wiki.nginx.org/HttpHeadersMoreModule#more_clear_input_headers" href="http://wiki.nginx.org/HttpHeadersMoreModule#more_clear_input_headers" class="externalLink">more_clear_input_headers</a> did not remove all the instances for the built-in headers or custom headers.</li><li> bugfix: <a target="_blank" title="External link to http://wiki.nginx.org/HttpHeadersMoreModule#more_clear_input_headers" href="http://wiki.nginx.org/HttpHeadersMoreModule#more_clear_input_headers" class="externalLink">more_clear_input_headers</a> might accidentally remove request headers that were not specified at all and left the specified headers with just empty header values when removing multiple built-in headers. thanks Matthieu Tourne for reporting the issues.</li></ul></li><li> upgraded <a tiddlylink="LuaNginxModule" refresh="link" target="_blank" title="External link to null#LuaNginxModule" href="null#LuaNginxModule" class="externalLink null">LuaNginxModule</a> to 0.5.7.<ul><li> feature: added an optional "option table" to <a target="_blank" title="External link to http://wiki.nginx.org/HttpLuaModule#tcpsock:connect" href="http://wiki.nginx.org/HttpLuaModule#tcpsock:connect" class="externalLink">tcpsock:connect()</a> which accepts a <code>pool</code> option to allow the user specify a custom pool name intead of the automatically generated one based on the host-port pair or the socket file path. thanks Brian Akins for the patches.</li><li> feature: implemented the UDP/unix-datagram cosocket API. the entry point is <a target="_blank" title="External link to http://wiki.nginx.org/HttpLuaModule#ngx.socket.udp" href="http://wiki.nginx.org/HttpLuaModule#ngx.socket.udp" class="externalLink">ngx.socket.udp</a>. we preserve API compatibility with the LuaSocket library but everything is non-blocking in our implementation.</li><li> feature: added new Nginx API for Lua: <a target="_blank" title="External link to http://wiki.nginx.org/HttpLuaModule#ngx.req.set_method" href="http://wiki.nginx.org/HttpLuaModule#ngx.req.set_method" class="externalLink">ngx.req.set_method(method_id)</a> and <a target="_blank" title="External link to http://wiki.nginx.org/HttpLuaModule#ngx.req.get_method" href="http://wiki.nginx.org/HttpLuaModule#ngx.req.get_method" class="externalLink">ngx.req.get_method</a>. thanks Matthieu Tourne for suggesting these.</li><li> bugfix: the tcp/stream-unix cosocket object might hang when another concurrent request is accessing it while its operation is still in progress; now we always check for potential access conflicts and return the <code>socket busy</code> error string if it is indeed the case.</li><li> bugfix: the <a target="_blank" title="External link to http://wiki.nginx.org/HttpLuaModule#tcpsock:connect" href="http://wiki.nginx.org/HttpLuaModule#tcpsock:connect" class="externalLink">tcpsock:connect()</a> method always returned the (vague) error strng <code>"connect peer error"</code> instead of the (detailed) system error string when the connect syscall failed.</li><li> bugfix: the TCP/stream-unix cosocket object might go wrong after it connected successfully in a single run (that is, no <code>EAGAIN</code> returned in the middle) and DNS domain names were used.</li><li> bugfix: <a target="_blank" title="External link to http://wiki.nginx.org/HttpLuaModule#tcpsock:receive" href="http://wiki.nginx.org/HttpLuaModule#tcpsock:receive" class="externalLink">tcpsock:receive()</a> and <a target="_blank" title="External link to http://wiki.nginx.org/HttpLuaModule#tcpsock:send" href="http://wiki.nginx.org/HttpLuaModule#tcpsock:send" class="externalLink">tcpsock:send()</a> always returned <code>"error"</code> as the error message instead of the (detailed) system error string.</li><li> bugfix: <a target="_blank" title="External link to http://wiki.nginx.org/HttpLuaModule#ngx.req.clear_header" href="http://wiki.nginx.org/HttpLuaModule#ngx.req.clear_header" class="externalLink">ngx.req.clear_header()</a> did not remove all the instances for the built-in headers or custom headers.</li><li> bugfix: <a target="_blank" title="External link to http://wiki.nginx.org/HttpLuaModule#ngx.req.clear_header" href="http://wiki.nginx.org/HttpLuaModule#ngx.req.clear_header" class="externalLink">ngx.req.clear_header()</a> might accidentally remove request headers that are not specified at all and left the specified headers with just empty header values when removing multiple built-in headers. thanks Matthieu Tourne for reporting the issues.</li><li> bugfix: we did not always test if the request object pointer is null in the <code>ngx.req.*_body</code> API.</li><li> bugfix: <a target="_blank" title="External link to http://wiki.nginx.org/HttpLuaModule#ngx.exec" href="http://wiki.nginx.org/HttpLuaModule#ngx.exec" class="externalLink">ngx.exec()</a> did not accept the <code>nil</code> value for its second (optional) argument.</li><li> bugfix: <code>ngx.exit(404/500/...)</code> would throw out Lua errors when the response headers with exactly the same status code had already been sent. thanks Matthieu Tourne for reporting this.</li><li> bugfix: gcc might issue the "unused variable" warning when PCRE was disabled. thanks Dirk Feytons for the patch.</li></ul></li><li> upgraded <a tiddlylink="LuaRestyRedisLibrary" refresh="link" target="_blank" title="External link to null#LuaRestyRedisLibrary" href="null#LuaRestyRedisLibrary" class="externalLink null">LuaRestyRedisLibrary</a> to 0.11.<ul><li> feature: added the <code>array_to_hash</code> method. thanks Brian Akins for the patch in <a target="_blank" title="External link to https://github.com/agentzh/lua-resty-redis/pull/8" href="https://github.com/agentzh/lua-resty-redis/pull/8" class="externalLink">github #8</a>.</li></ul></li><li> upgraded <a tiddlylink="LuaRestyMySQLLibrary" refresh="link" target="_blank" title="External link to null#LuaRestyMySQLLibrary" href="null#LuaRestyMySQLLibrary" class="externalLink null">LuaRestyMySQLLibrary</a> to 0.09.<ul><li> feature: added the <code>compact_arrays</code> option to the <code>connect()</code> method to make the driver return arrays of arrays instead of the (default) arrays of hashes. thanks Lance Li for requesting this feature.</li><li> feature: added new method <code>set_compact_arrays</code> to change the current <code>compact_arrays</code> option value used by the current object for subsequent queries. thanks Lance Li for suggesting it.</li><li> feature: added the <code>pool</code> option to the <code>connect()</code> method.</li><li> bugfix: connections to different MySQL databases and/or different MySQL users would incorrectly share the same connection pool as long as they were connecting to the same MySQL server. thanks lhmwzy for reporting the issue.</li><li> docs: fixed the <code>path</code> option value for the <code>connect()</code> method in README. it should not take the <code>unix:</code> prefix. thanks Lance Li.</li><li> docs: documented that storing the object instance into lua module-level variables will result in failures for concurrent requests.</li><li> docs: documented that this library cannot be used in those contexts where the cosocket API is unavailable.</li></ul></li><li> upgraded the standard Lua interpreter to 5.1.5.</li><li> disabled the Lua 5.0 compatibility in the standard Lua interpreter bundled.</li></ul><h1> Devel Release 1.2.1.5 - 4 July 2012</h1><ul><li> upgraded <a tiddlylink="LuaNginxModule" refresh="link" target="_blank" title="External link to null#LuaNginxModule" href="null#LuaNginxModule" class="externalLink null">LuaNginxModule</a> to 0.5.5.<ul><li> feature: added new configure directives <a target="_blank" title="External link to http://wiki.nginx.org/HttpLuaModule#init_by_lua" href="http://wiki.nginx.org/HttpLuaModule#init_by_lua" class="externalLink">init_by_lua</a> and <a target="_blank" title="External link to http://wiki.nginx.org/HttpLuaModule#init_by_lua_file" href="http://wiki.nginx.org/HttpLuaModule#init_by_lua_file" class="externalLink">init_by_lua_file</a>. they can be used to pre-load Lua modules, registering true Lua global variables, and initializing the shared-memory storage defined via <a target="_blank" title="External link to http://wiki.nginx.org/HttpLuaModule#lua_shared_dict" href="http://wiki.nginx.org/HttpLuaModule#lua_shared_dict" class="externalLink">lua_shared_dict</a>, at Nginx config-loading time. thanks drdrxp for suggesting this new feature.</li><li> feature: now we print backtrace to <code>error.log</code> when Lua errors happen in <a target="_blank" title="External link to http://wiki.nginx.org/HttpLuaModule#set_by_lua" href="http://wiki.nginx.org/HttpLuaModule#set_by_lua" class="externalLink">set_by_lua</a>*, <a target="_blank" title="External link to http://wiki.nginx.org/HttpLuaModule#header_filter_by_lua" href="http://wiki.nginx.org/HttpLuaModule#header_filter_by_lua" class="externalLink">header_filter_by_lua</a>*, <a target="_blank" title="External link to http://wiki.nginx.org/HttpLuaModule#body_filter_by_lua" href="http://wiki.nginx.org/HttpLuaModule#body_filter_by_lua" class="externalLink">body_filter_by_lua</a>*, and <a target="_blank" title="External link to http://wiki.nginx.org/HttpLuaModule#log_by_lua" href="http://wiki.nginx.org/HttpLuaModule#log_by_lua" class="externalLink">log_by_lua</a>.</li><li> bugfix: upstream data buffers were not marked as fully consumed when <a target="_blank" title="External link to http://wiki.nginx.org/HttpLuaModule#body_filter_by_lua" href="http://wiki.nginx.org/HttpLuaModule#body_filter_by_lua" class="externalLink">body_filter_by_lua</a>* was used and <code>ngx.arg[1]</code> was overwritten. this could result in connection hang for large response bodies. thanks Tzury Bar Yochay for reporting this issue.</li><li> bugfix: gcc complained that "dereferencing type-punned pointer will break strict-aliasing rules" when <code>-O2</code> or above was enabled while compiling. thanks Ryan Ooi for reporting this and chaoslawful for fixing it.</li></ul></li><li> upgraded <a tiddlylink="LuaRestyRedisLibrary" refresh="link" target="_blank" title="External link to null#LuaRestyRedisLibrary" href="null#LuaRestyRedisLibrary" class="externalLink null">LuaRestyRedisLibrary</a> to 0.10.<ul><li> feature: added the Redis <code>script</code> command introduced in Redis 2.6. thanks Evgeniy Dolzhenko for suggesting this.</li><li> docs: documented that storing the object instance into lua module-level variables will result in failures for concurrent requests.</li><li> docs: documented that this lib cannot be used in those contexts where the ngx_lua cosocket API is unavailable.</li></ul></li><li> upgraded <a tiddlylink="SrcacheNginxModule" refresh="link" target="_blank" title="External link to null#SrcacheNginxModule" href="null#SrcacheNginxModule" class="externalLink null">SrcacheNginxModule</a> to 0.14.<ul><li> feature: added new nginx variable <a target="_blank" title="External link to http://wiki.nginx.org/HttpSRCacheModule#.24srcache_fetch_status" href="http://wiki.nginx.org/HttpSRCacheModule#.24srcache_fetch_status" class="externalLink">$srcache_fetch_status</a> which takes one of three values, <code>BYASS</code>, <code>MISS</code>, and <code>HIT</code>. thanks Feibo Li for the patch.</li><li> feature: added new Nginx variable <a target="_blank" title="External link to http://wiki.nginx.org/HttpSRCacheModule#.24srcache_store_status" href="http://wiki.nginx.org/HttpSRCacheModule#.24srcache_store_status" class="externalLink">$srcache_store_status</a> which takes the value <code>BYASS</code> or <code>STORE</code>.</li><li> optimize: removed unused context data field <code>fetch_sr</code> on the C level to reduce the memory footprint a bit.</li></ul></li></ul><h1> Devel Release 1.2.1.3 - 25 June 2012</h1><ul><li> upgraded <a tiddlylink="EchoNginxModule" refresh="link" target="_blank" title="External link to null#EchoNginxModule" href="null#EchoNginxModule" class="externalLink null">EchoNginxModule</a> to 0.40.<ul><li> feature: added new directive <a target="_blank" title="External link to http://wiki.nginx.org/HttpEchoModule#echo_status" href="http://wiki.nginx.org/HttpEchoModule#echo_status" class="externalLink">echo_status</a> which can be used to specify a different default response status code other than 200. thanks Maxime Corbeau for requesting this.</li></ul></li><li> upgraded <a tiddlylink="LuaNginxModule" refresh="link" target="_blank" title="External link to null#LuaNginxModule" href="null#LuaNginxModule" class="externalLink null">LuaNginxModule</a> to 0.5.3.<ul><li> bugfix: <a target="_blank" title="External link to http://wiki.nginx.org/HttpLuaModule#ngx.say" href="http://wiki.nginx.org/HttpLuaModule#ngx.say" class="externalLink">ngx.say</a> and <a target="_blank" title="External link to http://wiki.nginx.org/HttpLuaModule#ngx.print" href="http://wiki.nginx.org/HttpLuaModule#ngx.print" class="externalLink">ngx.print</a> might cause nginx to crash when table-typed arguments were given. thanks sztanpet for reporting this in <a target="_blank" title="External link to https://github.com/chaoslawful/lua-nginx-module/issues/54#issuecomment-6527745" href="https://github.com/chaoslawful/lua-nginx-module/issues/54#issuecomment-6527745" class="externalLink">github issue #54</a>.</li></ul></li><li> applied <a target="_blank" title="External link to https://github.com/agentzh/ngx_openresty/blob/master/patches/nginx-1.2.1-location_if_inherits_proxy.patch" href="https://github.com/agentzh/ngx_openresty/blob/master/patches/nginx-1.2.1-location_if_inherits_proxy.patch" class="externalLink">location_if_inherits_proxy.patch</a> to the nginx core. see <a target="_blank" title="External link to http://mailman.nginx.org/pipermail/nginx-devel/2012-June/002374.html" href="http://mailman.nginx.org/pipermail/nginx-devel/2012-June/002374.html" class="externalLink">http://mailman.nginx.org/pipermail/nginx-devel/2012-June/002374.html</a> for details.</li></ul><h1> Devel Release 1.2.1.1 - 22 June 2012</h1><ul><li> upgraded the Nginx core to 1.2.1.<ul><li> see the change log: <a target="_blank" title="External link to http://nginx.org/en/CHANGES-1.2" href="http://nginx.org/en/CHANGES-1.2" class="externalLink">http://nginx.org/en/CHANGES-1.2</a></li></ul></li><li> upgraded <a tiddlylink="LuaNginxModule" refresh="link" target="_blank" title="External link to null#LuaNginxModule" href="null#LuaNginxModule" class="externalLink null">LuaNginxModule</a> to 0.5.2.<ul><li> bugfix: <a target="_blank" title="External link to http://wiki.nginx.org/HttpLuaModule#header_filter_by_lua" href="http://wiki.nginx.org/HttpLuaModule#header_filter_by_lua" class="externalLink">header_filter_by_lua</a>* did not run at all when <a target="_blank" title="External link to http://wiki.nginx.org/HttpLuaModule#body_filter_by_lua" href="http://wiki.nginx.org/HttpLuaModule#body_filter_by_lua" class="externalLink">body_filter_by_lua</a>* was defined at the same time. thanks Tzury Bar Yochay for reporting this issue.</li><li> feature: added the <code>inclusive</code> option to the <a target="_blank" title="External link to http://wiki.nginx.org/HttpLuaModule#tcpsock:receiveuntil" href="http://wiki.nginx.org/HttpLuaModule#tcpsock:receiveuntil" class="externalLink">cosocket:receiveuntil</a> method to include the delimiter pattern string in the resulting data read. thanks Matthieu Tourne for the patch.</li><li> optimize: merged two successive Nginx pool allocations in <code>ngx_http_lua_socket_resolve_handler</code> to reduce overhead.</li></ul></li><li> upgraded <a tiddlylink="EchoNginxModule" refresh="link" target="_blank" title="External link to null#EchoNginxModule" href="null#EchoNginxModule" class="externalLink null">EchoNginxModule</a> to 0.39.<ul><li> bugfix: <a tiddlylink="EchoNginxModule" refresh="link" target="_blank" title="External link to null#EchoNginxModule" href="null#EchoNginxModule" class="externalLink null">EchoNginxModule</a>'s configure directives was not inherited automatically by <code>location if</code> inner blocks.</li><li> bugfix: the old HTTP 1.0 protocol handling was wrong. we should leave that to the Nginx core and just output responses without a <code>Content-Length</code> response header.</li><li> bugfix: reading the <a target="_blank" title="External link to http://wiki.nginx.org/HttpEchoModule#.24echo_it" href="http://wiki.nginx.org/HttpEchoModule#.24echo_it" class="externalLink">$echo_it</a> variable outside the <a target="_blank" title="External link to http://wiki.nginx.org/HttpEchoModule#echo_foreach_split" href="http://wiki.nginx.org/HttpEchoModule#echo_foreach_split" class="externalLink">echo_foreach_split</a> loop resulted in memory invalid reads and hence segfaults; now it is evaluates to the special <code>not found</code> value. thanks baqs for reporting this.</li></ul></li><li> upgraded <a tiddlylink="PostgresNginxModule" refresh="link" target="_blank" title="External link to null#PostgresNginxModule" href="null#PostgresNginxModule" class="externalLink null">PostgresNginxModule</a> to 1.0rc1.<ul><li> bugfix: memory leak might happen if nginx 1.1.14+ was used and (at least) <code>libpq</code> failed to connect to the remote database.</li></ul></li><li> upgraded the (optional) no-pool patch to the latest version, <code>642ae25</code>.<ul><li> bugfix: we should postpone freeing the <code>elts</code> storage for <code>ngx_array_t</code> to <code>ngx_array_destroy</code> when resizing the array because at least the <code>ngx_rewrite</code> module stores external references to the array elements.</li></ul></li></ul><br>See <a tiddlylink="ChangeLog1000015" refresh="link" target="_blank" title="External link to null#ChangeLog1000015" href="null#ChangeLog1000015" class="externalLink null">ChangeLog1000015</a> for change log for ngx_openresty 1.0.15.x.
+null#ChangeLog1002001
+Mon, 06 Aug 2012 18:16:01 GMT
+
+
+
 LuaRestyDNSLibrary
 <a tiddler="LuaRestyDNSLibrary" commandname="permalink" class="button command_permalink" title="Permalink for this tiddler" href="javascript:;">permalink</a><br><br>Nonblocking DNS (Domain Name System) resolver for <a tiddlylink="LuaNginxModule" refresh="link" target="_blank" title="External link to null#LuaNginxModule" href="null#LuaNginxModule" class="externalLink null">LuaNginxModule</a> based on the cosocket API.<br><br>Project homepage: <a target="_blank" title="External link to https://github.com/agentzh/lua-resty-dns" href="https://github.com/agentzh/lua-resty-dns" class="externalLink">https://github.com/agentzh/lua-resty-dns</a><br><br>This library is enabled by default. You can specify the <code>--without-lua_resty_dns</code> option to <a tiddlylink="OpenResty" refresh="link" target="_blank" title="External link to null#OpenResty" href="null#OpenResty" class="externalLink null">OpenResty</a>'s <code>./configure</code> script to explicitly disable it.
 null#LuaRestyDNSLibrary
-Mon, 06 Aug 2012 06:55:08 GMT
+Mon, 06 Aug 2012 06:55:00 GMT
 
 
 
 LuaRestyRedisLibrary
 <a tiddler="LuaRestyRedisLibrary" commandname="permalink" class="button command_permalink" title="Permalink for this tiddler" href="javascript:;">permalink</a><br><br>Lua <a target="_blank" title="External link to http://redis.io/" href="http://redis.io/" class="externalLink">Redis</a> client driver for <a tiddlylink="LuaNginxModule" refresh="link" target="_blank" title="External link to null#LuaNginxModule" href="null#LuaNginxModule" class="externalLink null">LuaNginxModule</a> based on the cosocket API.<br><br>Project homepage: <a target="_blank" title="External link to https://github.com/agentzh/lua-resty-redis" href="https://github.com/agentzh/lua-resty-redis" class="externalLink">https://github.com/agentzh/lua-resty-redis</a><br><br>This library is enabled by default. You can specify the <code>--without-lua_resty_redis</code> option to <a tiddlylink="OpenResty" refresh="link" target="_blank" title="External link to null#OpenResty" href="null#OpenResty" class="externalLink null">OpenResty</a>'s <code>./configure</code> script to explicitly disable it.<br>
 null#LuaRestyRedisLibrary
-Mon, 06 Aug 2012 06:55:03 GMT
-
-
-
-ChangeLog1002001
-<a tiddler="ChangeLog1002001" commandname="permalink" class="button command_permalink" title="Permalink for this tiddler" href="javascript:;">permalink</a><br><h1> Devel Release 1.2.1.11 - 5 August 2012</h1><ul><li> bundled <a tiddlylink="LuaRestyDNSLibrary" refresh="link" target="_blank" title="External link to null#LuaRestyDNSLibrary" href="null#LuaRestyDNSLibrary" class="externalLink null">LuaRestyDNSLibrary</a> 0.04 and enabled it by default: <a target="_blank" title="External link to https://github.com/agentzh/lua-resty-dns" href="https://github.com/agentzh/lua-resty-dns" class="externalLink">https://github.com/agentzh/lua-resty-dns</a></li><li> upgraded <a tiddlylink="LuaNginxModule" refresh="link" target="_blank" title="External link to null#LuaNginxModule" href="null#LuaNginxModule" class="externalLink null">LuaNginxModule</a> to 0.5.12.<ul><li> bugfix: the <a target="_blank" title="External link to http://wiki.nginx.org/HttpLuaModule#ngx.socket.udp" href="http://wiki.nginx.org/HttpLuaModule#ngx.socket.udp" class="externalLink">UDP cosocket object</a> could no longer be used after an read or write error happened.</li><li> bugfix: <a target="_blank" title="External link to http://wiki.nginx.org/HttpLuaModule#ngx.exit" href="http://wiki.nginx.org/HttpLuaModule#ngx.exit" class="externalLink">ngx.exit(status)</a> always resulted in <code>200 OK</code> response status when status &gt; 200 and status &lt; 300. thanks Nginx User for reporting this issue.</li></ul></li><li> upgraded <a tiddlylink="HeadersMoreNginxModule" refresh="link" target="_blank" title="External link to null#HeadersMoreNginxModule" href="null#HeadersMoreNginxModule" class="externalLink null">HeadersMoreNginxModule</a> to 0.18.<ul><li> bugfix: fixed a <code>set-but-not-read</code> warning from the <code>clang</code> static code analyzer.</li><li> fixed compatibility with nginx 0.7.65. thanks Banping for reporting this.</li></ul></li><li> upgraded <a tiddlylink="DrizzleNginxModule" refresh="link" target="_blank" title="External link to null#DrizzleNginxModule" href="null#DrizzleNginxModule" class="externalLink null">DrizzleNginxModule</a> to 0.1.2.<ul><li> minor code cleanup in the built-in connection pool.</li></ul></li></ul><h1> Devel Release 1.2.1.9 - 30 July 2012</h1><ul><li> upgraded <a tiddlylink="LuaRestyMySQLLibrary" refresh="link" target="_blank" title="External link to null#LuaRestyMySQLLibrary" href="null#LuaRestyMySQLLibrary" class="externalLink null">LuaRestyMySQLLibrary</a> to 0.10.<ul><li> bugfix: the MySQL <code>bigint</code> fields might overflow when converting to lua numbers. now we no longer convert such fields into Lua numbers and instead, just treat them as Lua strings. thanks Lance Li for reporting this issue.</li></ul></li><li> upgraded <a tiddlylink="LuaNginxModule" refresh="link" target="_blank" title="External link to null#LuaNginxModule" href="null#LuaNginxModule" class="externalLink null">LuaNginxModule</a> to 0.5.11.<ul><li> feature: added new Lua API <a target="_blank" title="External link to http://wiki.nginx.org/HttpLuaModule#ngx.req.init_body" href="http://wiki.nginx.org/HttpLuaModule#ngx.req.init_body" class="externalLink">ngx.req.init_body</a>, <a target="_blank" title="External link to http://wiki.nginx.org/HttpLuaModule#ngx.req.append_body" href="http://wiki.nginx.org/HttpLuaModule#ngx.req.append_body" class="externalLink">ngx.req.append_body</a>, and <a target="_blank" title="External link to http://wiki.nginx.org/HttpLuaModule#ngx.req.finish_body" href="http://wiki.nginx.org/HttpLuaModule#ngx.req.finish_body" class="externalLink">ngx.req.finish_body</a>. thanks Matthieu Tourne for the patches. These new functions can be used with the existing "downstream cosocket API" (provided by <a target="_blank" title="External link to http://wiki.nginx.org/HttpLuaModule#ngx.req.socket" href="http://wiki.nginx.org/HttpLuaModule#ngx.req.socket" class="externalLink">ngx.req.socket</a>) to implement efficient Nginx "input filters" in pure Lua.</li><li> feature: added new Lua API <a target="_blank" title="External link to http://wiki.nginx.org/HttpLuaModule#ngx.get_phase" href="http://wiki.nginx.org/HttpLuaModule#ngx.get_phase" class="externalLink">ngx.get_phase</a> for retrieving the current running phase of the Lua code being executed. thanks James Hurst for the patch.</li><li> feature: added the first dtrace static probe: <code>nginx_lua:::http-lua-register-preload-package</code> and <code>nginx_lua:::http-lua-req-socket-consume-preread</code>.</li><li> bugfix: <code>buffer error</code> would happen when the <code>args</code> option table to <a target="_blank" title="External link to http://wiki.nginx.org/HttpLuaModule#ngx.location.capture" href="http://wiki.nginx.org/HttpLuaModule#ngx.location.capture" class="externalLink">ngx.location.capture</a> (and <a target="_blank" title="External link to http://wiki.nginx.org/HttpLuaModule#ngx.encode_args" href="http://wiki.nginx.org/HttpLuaModule#ngx.encode_args" class="externalLink">ngx.encode_args</a>) contained a multi-value argument whose key also required URI escaping. thanks Matthieu Tourne for reporting this.</li><li> bugfix: <a target="_blank" title="External link to http://wiki.nginx.org/HttpLuaModule#ngx.re.gmatch" href="http://wiki.nginx.org/HttpLuaModule#ngx.re.gmatch" class="externalLink">ngx.re.gmatch()</a> might result in segmentation faults during nginx request cleanups if the iterator returned by <a target="_blank" title="External link to http://wiki.nginx.org/HttpLuaModule#ngx.re.gmatch" href="http://wiki.nginx.org/HttpLuaModule#ngx.re.gmatch" class="externalLink">ngx.re.gmatch()</a> was collected (by Lua GC) before request cleanups. this bug had appeared in <a tiddlylink="LuaNginxModule" refresh="link" target="_blank" title="External link to null#LuaNginxModule" href="null#LuaNginxModule" class="externalLink null">LuaNginxModule</a> 0.5.0rc30 (and <a tiddlylink="OpenResty" refresh="link" target="_blank" title="External link to null#OpenResty" href="null#OpenResty" class="externalLink null">OpenResty</a> 1.0.15.9). thanks Wayne for reporting this issue.</li><li> bugfix: 3rd-party nginx C modules that use the public C API function, <code>ngx_http_lua_add_package_preload</code>, could result in segmentation faults at nginx server startup due to uninitialized Lua VM pointer. thanks Ray Bejjani for reporting this.</li><li> bugfix: Proper error messages were not always thrown when the iterator returned by <a target="_blank" title="External link to http://wiki.nginx.org/HttpLuaModule#ngx.re.gmatch" href="http://wiki.nginx.org/HttpLuaModule#ngx.re.gmatch" class="externalLink">ngx.re.gmatch</a> was (incorrectly) used in the context of another nginx request.</li><li> bugfix: fixed several Clang compilation warnings.</li></ul></li><li> feature: applied the <a target="_blank" title="External link to https://github.com/agentzh/ngx_openresty/blob/master/patches/nginx-1.2.1-dtrace.patch" href="https://github.com/agentzh/ngx_openresty/blob/master/patches/nginx-1.2.1-dtrace.patch" class="externalLink">dtrace patch</a> to the nginx core that adds dtrace static probing support for both the Nginx core and 3rd-party modules to the Nginx build system. this support can be enabled by <code>./configure --with-dtrace-probes</code>.</li><li> feature: added new dtrace static probes to the Nginx core<ul><li> added 8 kinds of static probes to the subrequest mechanism: <code>nginx:::http-subrequest-cycle</code>, <code>nginx:::http-subrequest-start</code>, <code>nginx:::http-subrequest-finalize-writing</code>, <code>nginx:::http-subrequest-finalize-nonactive</code>, <code>nginx:::http-subrequest-wake-parent</code>, <code>nginx:::http-subrequest-done</code>, <code>nginx:::http-subrequest-post-start</code>, and <code>nginx:::http-subrequest-post-done</code>.</li><li> added 2 kinds of static probes to the standard request body reader: <code>nginx:::http-read-body-abort</code> and <code>nginx:::http-read-body-done</code>.</li><li> added 2 kinds of static probes to the standard main request header reader: <code>nginx:::http-read-req-line-done</code> and <code>nginx:::http-read-req-header-done</code>.</li><li> added 1 kind of static probes to the configuration loader: <code>nginx:::http-module-post-config</code>.</li><li> added the <code>nginx.stp</code> stapset script for systemtap: <a target="_blank" title="External link to https://github.com/agentzh/nginx-dtrace/blob/master/src/dtrace/nginx.stp" href="https://github.com/agentzh/nginx-dtrace/blob/master/src/dtrace/nginx.stp" class="externalLink">https://github.com/agentzh/nginx-dtrace/blob/master/src/dtrace/nginx.stp</a></li><li> added the <a target="_blank" title="External link to https://github.com/agentzh/nginx-dtrace/blob/master/src/dtrace/stap-nginx" href="https://github.com/agentzh/nginx-dtrace/blob/master/src/dtrace/stap-nginx" class="externalLink">stap-nginx</a> wrapper sh script for systemtap's <code>stap</code> command for nginx. this script will be installed to <code>$PREFIX/sbin/</code> when the <code>./configure</code> option <code>--with-dtrace-probes</code> is specified.</li></ul></li><li> bugfix: fixed an issue regarding subrequests in <a target="_blank" title="External link to https://github.com/agentzh/ngx_openresty/blob/master/patches/nginx-1.2.1-allow_request_body_updating.patch" href="https://github.com/agentzh/ngx_openresty/blob/master/patches/nginx-1.2.1-allow_request_body_updating.patch" class="externalLink">allow_request_body_updating.patch</a>.</li></ul><h1> Devel Release 1.2.1.7 - 14 July 2012</h1><ul><li> upraded <a tiddlylink="HeadersMoreNginxModule" refresh="link" target="_blank" title="External link to null#HeadersMoreNginxModule" href="null#HeadersMoreNginxModule" class="externalLink null">HeadersMoreNginxModule</a> to 0.17.<ul><li> bugfix: <a target="_blank" title="External link to http://wiki.nginx.org/HttpHeadersMoreModule#more_clear_input_headers" href="http://wiki.nginx.org/HttpHeadersMoreModule#more_clear_input_headers" class="externalLink">more_clear_input_headers</a> did not remove all the instances for the built-in headers or custom headers.</li><li> bugfix: <a target="_blank" title="External link to http://wiki.nginx.org/HttpHeadersMoreModule#more_clear_input_headers" href="http://wiki.nginx.org/HttpHeadersMoreModule#more_clear_input_headers" class="externalLink">more_clear_input_headers</a> might accidentally remove request headers that were not specified at all and left the specified headers with just empty header values when removing multiple built-in headers. thanks Matthieu Tourne for reporting the issues.</li></ul></li><li> upgraded <a tiddlylink="LuaNginxModule" refresh="link" target="_blank" title="External link to null#LuaNginxModule" href="null#LuaNginxModule" class="externalLink null">LuaNginxModule</a> to 0.5.7.<ul><li> feature: added an optional "option table" to <a target="_blank" title="External link to http://wiki.nginx.org/HttpLuaModule#tcpsock:connect" href="http://wiki.nginx.org/HttpLuaModule#tcpsock:connect" class="externalLink">tcpsock:connect()</a> which accepts a <code>pool</code> option to allow the user specify a custom pool name intead of the automatically generated one based on the host-port pair or the socket file path. thanks Brian Akins for the patches.</li><li> feature: implemented the UDP/unix-datagram cosocket API. the entry point is <a target="_blank" title="External link to http://wiki.nginx.org/HttpLuaModule#ngx.socket.udp" href="http://wiki.nginx.org/HttpLuaModule#ngx.socket.udp" class="externalLink">ngx.socket.udp</a>. we preserve API compatibility with the LuaSocket library but everything is non-blocking in our implementation.</li><li> feature: added new Nginx API for Lua: <a target="_blank" title="External link to http://wiki.nginx.org/HttpLuaModule#ngx.req.set_method" href="http://wiki.nginx.org/HttpLuaModule#ngx.req.set_method" class="externalLink">ngx.req.set_method(method_id)</a> and <a target="_blank" title="External link to http://wiki.nginx.org/HttpLuaModule#ngx.req.get_method" href="http://wiki.nginx.org/HttpLuaModule#ngx.req.get_method" class="externalLink">ngx.req.get_method</a>. thanks Matthieu Tourne for suggesting these.</li><li> bugfix: the tcp/stream-unix cosocket object might hang when another concurrent request is accessing it while its operation is still in progress; now we always check for potential access conflicts and return the <code>socket busy</code> error string if it is indeed the case.</li><li> bugfix: the <a target="_blank" title="External link to http://wiki.nginx.org/HttpLuaModule#tcpsock:connect" href="http://wiki.nginx.org/HttpLuaModule#tcpsock:connect" class="externalLink">tcpsock:connect()</a> method always returned the (vague) error strng <code>"connect peer error"</code> instead of the (detailed) system error string when the connect syscall failed.</li><li> bugfix: the TCP/stream-unix cosocket object might go wrong after it connected successfully in a single run (that is, no <code>EAGAIN</code> returned in the middle) and DNS domain names were used.</li><li> bugfix: <a target="_blank" title="External link to http://wiki.nginx.org/HttpLuaModule#tcpsock:receive" href="http://wiki.nginx.org/HttpLuaModule#tcpsock:receive" class="externalLink">tcpsock:receive()</a> and <a target="_blank" title="External link to http://wiki.nginx.org/HttpLuaModule#tcpsock:send" href="http://wiki.nginx.org/HttpLuaModule#tcpsock:send" class="externalLink">tcpsock:send()</a> always returned <code>"error"</code> as the error message instead of the (detailed) system error string.</li><li> bugfix: <a target="_blank" title="External link to http://wiki.nginx.org/HttpLuaModule#ngx.req.clear_header" href="http://wiki.nginx.org/HttpLuaModule#ngx.req.clear_header" class="externalLink">ngx.req.clear_header()</a> did not remove all the instances for the built-in headers or custom headers.</li><li> bugfix: <a target="_blank" title="External link to http://wiki.nginx.org/HttpLuaModule#ngx.req.clear_header" href="http://wiki.nginx.org/HttpLuaModule#ngx.req.clear_header" class="externalLink">ngx.req.clear_header()</a> might accidentally remove request headers that are not specified at all and left the specified headers with just empty header values when removing multiple built-in headers. thanks Matthieu Tourne for reporting the issues.</li><li> bugfix: we did not always test if the request object pointer is null in the <code>ngx.req.*_body</code> API.</li><li> bugfix: <a target="_blank" title="External link to http://wiki.nginx.org/HttpLuaModule#ngx.exec" href="http://wiki.nginx.org/HttpLuaModule#ngx.exec" class="externalLink">ngx.exec()</a> did not accept the <code>nil</code> value for its second (optional) argument.</li><li> bugfix: <code>ngx.exit(404/500/...)</code> would throw out Lua errors when the response headers with exactly the same status code had already been sent. thanks Matthieu Tourne for reporting this.</li><li> bugfix: gcc might issue the "unused variable" warning when PCRE was disabled. thanks Dirk Feytons for the patch.</li></ul></li><li> upgraded <a tiddlylink="LuaRestyRedisLibrary" refresh="link" target="_blank" title="External link to null#LuaRestyRedisLibrary" href="null#LuaRestyRedisLibrary" class="externalLink null">LuaRestyRedisLibrary</a> to 0.11.<ul><li> feature: added the <code>array_to_hash</code> method. thanks Brian Akins for the patch in <a target="_blank" title="External link to https://github.com/agentzh/lua-resty-redis/pull/8" href="https://github.com/agentzh/lua-resty-redis/pull/8" class="externalLink">github #8</a>.</li></ul></li><li> upgraded <a tiddlylink="LuaRestyMySQLLibrary" refresh="link" target="_blank" title="External link to null#LuaRestyMySQLLibrary" href="null#LuaRestyMySQLLibrary" class="externalLink null">LuaRestyMySQLLibrary</a> to 0.09.<ul><li> feature: added the <code>compact_arrays</code> option to the <code>connect()</code> method to make the driver return arrays of arrays instead of the (default) arrays of hashes. thanks Lance Li for requesting this feature.</li><li> feature: added new method <code>set_compact_arrays</code> to change the current <code>compact_arrays</code> option value used by the current object for subsequent queries. thanks Lance Li for suggesting it.</li><li> feature: added the <code>pool</code> option to the <code>connect()</code> method.</li><li> bugfix: connections to different MySQL databases and/or different MySQL users would incorrectly share the same connection pool as long as they were connecting to the same MySQL server. thanks lhmwzy for reporting the issue.</li><li> docs: fixed the <code>path</code> option value for the <code>connect()</code> method in README. it should not take the <code>unix:</code> prefix. thanks Lance Li.</li><li> docs: documented that storing the object instance into lua module-level variables will result in failures for concurrent requests.</li><li> docs: documented that this library cannot be used in those contexts where the cosocket API is unavailable.</li></ul></li><li> upgraded the standard Lua interpreter to 5.1.5.</li><li> disabled the Lua 5.0 compatibility in the standard Lua interpreter bundled.</li></ul><h1> Devel Release 1.2.1.5 - 4 July 2012</h1><ul><li> upgraded <a tiddlylink="LuaNginxModule" refresh="link" target="_blank" title="External link to null#LuaNginxModule" href="null#LuaNginxModule" class="externalLink null">LuaNginxModule</a> to 0.5.5.<ul><li> feature: added new configure directives <a target="_blank" title="External link to http://wiki.nginx.org/HttpLuaModule#init_by_lua" href="http://wiki.nginx.org/HttpLuaModule#init_by_lua" class="externalLink">init_by_lua</a> and <a target="_blank" title="External link to http://wiki.nginx.org/HttpLuaModule#init_by_lua_file" href="http://wiki.nginx.org/HttpLuaModule#init_by_lua_file" class="externalLink">init_by_lua_file</a>. they can be used to pre-load Lua modules, registering true Lua global variables, and initializing the shared-memory storage defined via <a target="_blank" title="External link to http://wiki.nginx.org/HttpLuaModule#lua_shared_dict" href="http://wiki.nginx.org/HttpLuaModule#lua_shared_dict" class="externalLink">lua_shared_dict</a>, at Nginx config-loading time. thanks drdrxp for suggesting this new feature.</li><li> feature: now we print backtrace to <code>error.log</code> when Lua errors happen in <a target="_blank" title="External link to http://wiki.nginx.org/HttpLuaModule#set_by_lua" href="http://wiki.nginx.org/HttpLuaModule#set_by_lua" class="externalLink">set_by_lua</a>*, <a target="_blank" title="External link to http://wiki.nginx.org/HttpLuaModule#header_filter_by_lua" href="http://wiki.nginx.org/HttpLuaModule#header_filter_by_lua" class="externalLink">header_filter_by_lua</a>*, <a target="_blank" title="External link to http://wiki.nginx.org/HttpLuaModule#body_filter_by_lua" href="http://wiki.nginx.org/HttpLuaModule#body_filter_by_lua" class="externalLink">body_filter_by_lua</a>*, and <a target="_blank" title="External link to http://wiki.nginx.org/HttpLuaModule#log_by_lua" href="http://wiki.nginx.org/HttpLuaModule#log_by_lua" class="externalLink">log_by_lua</a>.</li><li> bugfix: upstream data buffers were not marked as fully consumed when <a target="_blank" title="External link to http://wiki.nginx.org/HttpLuaModule#body_filter_by_lua" href="http://wiki.nginx.org/HttpLuaModule#body_filter_by_lua" class="externalLink">body_filter_by_lua</a>* was used and <code>ngx.arg[1]</code> was overwritten. this could result in connection hang for large response bodies. thanks Tzury Bar Yochay for reporting this issue.</li><li> bugfix: gcc complained that "dereferencing type-punned pointer will break strict-aliasing rules" when <code>-O2</code> or above was enabled while compiling. thanks Ryan Ooi for reporting this and chaoslawful for fixing it.</li></ul></li><li> upgraded <a tiddlylink="LuaRestyRedisLibrary" refresh="link" target="_blank" title="External link to null#LuaRestyRedisLibrary" href="null#LuaRestyRedisLibrary" class="externalLink null">LuaRestyRedisLibrary</a> to 0.10.<ul><li> feature: added the Redis <code>script</code> command introduced in Redis 2.6. thanks Evgeniy Dolzhenko for suggesting this.</li><li> docs: documented that storing the object instance into lua module-level variables will result in failures for concurrent requests.</li><li> docs: documented that this lib cannot be used in those contexts where the ngx_lua cosocket API is unavailable.</li></ul></li><li> upgraded <a tiddlylink="SrcacheNginxModule" refresh="link" target="_blank" title="External link to null#SrcacheNginxModule" href="null#SrcacheNginxModule" class="externalLink null">SrcacheNginxModule</a> to 0.14.<ul><li> feature: added new nginx variable <a target="_blank" title="External link to http://wiki.nginx.org/HttpSRCacheModule#.24srcache_fetch_status" href="http://wiki.nginx.org/HttpSRCacheModule#.24srcache_fetch_status" class="externalLink">$srcache_fetch_status</a> which takes one of three values, <code>BYASS</code>, <code>MISS</code>, and <code>HIT</code>. thanks Feibo Li for the patch.</li><li> feature: added new Nginx variable <a target="_blank" title="External link to http://wiki.nginx.org/HttpSRCacheModule#.24srcache_store_status" href="http://wiki.nginx.org/HttpSRCacheModule#.24srcache_store_status" class="externalLink">$srcache_store_status</a> which takes the value <code>BYASS</code> or <code>STORE</code>.</li><li> optimize: removed unused context data field <code>fetch_sr</code> on the C level to reduce the memory footprint a bit.</li></ul></li></ul><h1> Devel Release 1.2.1.3 - 25 June 2012</h1><ul><li> upgraded <a tiddlylink="EchoNginxModule" refresh="link" target="_blank" title="External link to null#EchoNginxModule" href="null#EchoNginxModule" class="externalLink null">EchoNginxModule</a> to 0.40.<ul><li> feature: added new directive <a target="_blank" title="External link to http://wiki.nginx.org/HttpEchoModule#echo_status" href="http://wiki.nginx.org/HttpEchoModule#echo_status" class="externalLink">echo_status</a> which can be used to specify a different default response status code other than 200. thanks Maxime Corbeau for requesting this.</li></ul></li><li> upgraded <a tiddlylink="LuaNginxModule" refresh="link" target="_blank" title="External link to null#LuaNginxModule" href="null#LuaNginxModule" class="externalLink null">LuaNginxModule</a> to 0.5.3.<ul><li> bugfix: <a target="_blank" title="External link to http://wiki.nginx.org/HttpLuaModule#ngx.say" href="http://wiki.nginx.org/HttpLuaModule#ngx.say" class="externalLink">ngx.say</a> and <a target="_blank" title="External link to http://wiki.nginx.org/HttpLuaModule#ngx.print" href="http://wiki.nginx.org/HttpLuaModule#ngx.print" class="externalLink">ngx.print</a> might cause nginx to crash when table-typed arguments were given. thanks sztanpet for reporting this in <a target="_blank" title="External link to https://github.com/chaoslawful/lua-nginx-module/issues/54#issuecomment-6527745" href="https://github.com/chaoslawful/lua-nginx-module/issues/54#issuecomment-6527745" class="externalLink">github issue #54</a>.</li></ul></li><li> applied <a target="_blank" title="External link to https://github.com/agentzh/ngx_openresty/blob/master/patches/nginx-1.2.1-location_if_inherits_proxy.patch" href="https://github.com/agentzh/ngx_openresty/blob/master/patches/nginx-1.2.1-location_if_inherits_proxy.patch" class="externalLink">location_if_inherits_proxy.patch</a> to the nginx core. see <a target="_blank" title="External link to http://mailman.nginx.org/pipermail/nginx-devel/2012-June/002374.html" href="http://mailman.nginx.org/pipermail/nginx-devel/2012-June/002374.html" class="externalLink">http://mailman.nginx.org/pipermail/nginx-devel/2012-June/002374.html</a> for details.</li></ul><h1> Devel Release 1.2.1.1 - 22 June 2012</h1><ul><li> upgraded the Nginx core to 1.2.1.<ul><li> see the change log: <a target="_blank" title="External link to http://nginx.org/en/CHANGES-1.2" href="http://nginx.org/en/CHANGES-1.2" class="externalLink">http://nginx.org/en/CHANGES-1.2</a></li></ul></li><li> upgraded <a tiddlylink="LuaNginxModule" refresh="link" target="_blank" title="External link to null#LuaNginxModule" href="null#LuaNginxModule" class="externalLink null">LuaNginxModule</a> to 0.5.2.<ul><li> bugfix: <a target="_blank" title="External link to http://wiki.nginx.org/HttpLuaModule#header_filter_by_lua" href="http://wiki.nginx.org/HttpLuaModule#header_filter_by_lua" class="externalLink">header_filter_by_lua</a>* did not run at all when <a target="_blank" title="External link to http://wiki.nginx.org/HttpLuaModule#body_filter_by_lua" href="http://wiki.nginx.org/HttpLuaModule#body_filter_by_lua" class="externalLink">body_filter_by_lua</a>* was defined at the same time. thanks Tzury Bar Yochay for reporting this issue.</li><li> feature: added the <code>inclusive</code> option to the <a target="_blank" title="External link to http://wiki.nginx.org/HttpLuaModule#tcpsock:receiveuntil" href="http://wiki.nginx.org/HttpLuaModule#tcpsock:receiveuntil" class="externalLink">cosocket:receiveuntil</a> method to include the delimiter pattern string in the resulting data read. thanks Matthieu Tourne for the patch.</li><li> optimize: merged two successive Nginx pool allocations in <code>ngx_http_lua_socket_resolve_handler</code> to reduce overhead.</li></ul></li><li> upgraded <a tiddlylink="EchoNginxModule" refresh="link" target="_blank" title="External link to null#EchoNginxModule" href="null#EchoNginxModule" class="externalLink null">EchoNginxModule</a> to 0.39.<ul><li> bugfix: <a tiddlylink="EchoNginxModule" refresh="link" target="_blank" title="External link to null#EchoNginxModule" href="null#EchoNginxModule" class="externalLink null">EchoNginxModule</a>'s configure directives was not inherited automatically by <code>location if</code> inner blocks.</li><li> bugfix: the old HTTP 1.0 protocol handling was wrong. we should leave that to the Nginx core and just output responses without a <code>Content-Length</code> response header.</li><li> bugfix: reading the <a target="_blank" title="External link to http://wiki.nginx.org/HttpEchoModule#.24echo_it" href="http://wiki.nginx.org/HttpEchoModule#.24echo_it" class="externalLink">$echo_it</a> variable outside the <a target="_blank" title="External link to http://wiki.nginx.org/HttpEchoModule#echo_foreach_split" href="http://wiki.nginx.org/HttpEchoModule#echo_foreach_split" class="externalLink">echo_foreach_split</a> loop resulted in memory invalid reads and hence segfaults; now it is evaluates to the special <code>not found</code> value. thanks baqs for reporting this.</li></ul></li><li> upgraded <a tiddlylink="PostgresNginxModule" refresh="link" target="_blank" title="External link to null#PostgresNginxModule" href="null#PostgresNginxModule" class="externalLink null">PostgresNginxModule</a> to 1.0rc1.<ul><li> bugfix: memory leak might happen if nginx 1.1.14+ was used and (at least) <code>libpq</code> failed to connect to the remote database.</li></ul></li><li> upgraded the (optional) no-pool patch to the latest version, <code>642ae25</code>.<ul><li> bugfix: we should postpone freeing the <code>elts</code> storage for <code>ngx_array_t</code> to <code>ngx_array_destroy</code> when resizing the array because at least the <code>ngx_rewrite</code> module stores external references to the array elements.</li></ul></li></ul><br>See <a tiddlylink="ChangeLog1000015" refresh="link" target="_blank" title="External link to null#ChangeLog1000015" href="null#ChangeLog1000015" class="externalLink null">ChangeLog1000015</a> for change log for ngx_openresty 1.0.15.x.
-null#ChangeLog1002001
-Mon, 06 Aug 2012 06:53:19 GMT
+Mon, 06 Aug 2012 06:55:00 GMT
 
 
 
@@ -47,7 +47,7 @@
 <input name="item_name" value="OpenResty Donation (in USD)" type="hidden">
 <input name="currency_code" value="USD" type="hidden">
 <input name="amount" value="" type="hidden">
-<input src="donate_button_paypal_01.gif" name="submit" alt="Donate with PayPal" type="image" border="0">
+<input src="donate_button_paypal_01.gif" name="submit" alt="Donate with PayPal" border="0" type="image">
 </form>
 </span><br><span>
 <a href="http://me.alipay.com/agentzh" target="_blank"><img src="donate-with-alipay.png"></a>