Hi, folks!<br><div class="gmail_quote"><br>I'm happy to announce that the new stable <span>release</span> of <span>ngx_openresty</span>, 1.0.10.44, has just been kicked out of door:<br><br>  <a href="http://openresty.org/#Download" target="_blank">http://<span>openresty</span>.org/#Download</a><br>

<br>
This is the second stable <span>release</span> of <span>ngx_openresty</span> that is based on the Nginx core 1.0.10 (and the next one will be based on the Nginx core 1.0.11+).<br>
<br>Special thanks go to all our contributors and users to help make this <span>release</span> happen :)<br><br>Here goes the complete change log for this <span>release</span>, as compared to the last stable <span>release</span>, 1.0.10.24, <span>released</span> about one month ago:<br>

<div><ul><li> upgraded Mike Pall's <a title="LuaJIT - ZhangYichun, Tue 21 Jun 2011 05:11:00 PM CST">LuaJIT</a> to 2.0.0beta9.<ul><li> changes: <a title="External link to http://luajit.org/changes.html" href="http://luajit.org/changes.html" target="_blank">http://luajit.org/changes.html</a></li>

</ul></li><li> upgraded <a title="EchoNginxModule - ZhangYichun, Fri 26 Aug 2011 09:12:00 AM CST">EchoNginxModule</a> to 0.37.<ul><li> bugfix: fixed two spots that we did not check null pointers returned by the memory allocator.</li>

<li> bugfix: attempt to fix places where <code>ngx_time_update</code> might not be compiled properly.</li></ul></li><li> upgraded <a title="HeadersMoreNginxModule - ZhangYichun, Fri 26 Aug 2011 09:10:00 AM CST">HeadersMoreNginxModule</a> to 0.16.<ul>

<li> bugfix: <a title="External link to http://wiki.nginx.org/HttpHeadersMoreModule#more_set_input_headers" href="http://wiki.nginx.org/HttpHeadersMoreModule#more_set_input_headers" target="_blank">more_set_input_headers</a> and <a title="External link to http://wiki.nginx.org/HttpHeadersMoreModule#more_clear_input_headers" href="http://wiki.nginx.org/HttpHeadersMoreModule#more_clear_input_headers" target="_blank">more_clear_input_headers</a> did not handle the <code>Accept-Encoding</code> request headers properly. thanks 天街夜色.</li>

<li>
 bugfix: removing builtin headers in huge request headers with 20+ 
entries could result in data loss. thanks Chris Dumoulin for the patch 
in <a title="External link to https://github.com/agentzh/headers-more-nginx-module/issues/6" href="https://github.com/agentzh/headers-more-nginx-module/issues/6" target="_blank">github issue #6</a>.</li>
<li> bugfix: the <a title="External link to http://wiki.nginx.org/HttpHeadersMoreModule#more_set_headers" href="http://wiki.nginx.org/HttpHeadersMoreModule#more_set_headers" target="_blank">more_set_input_headers</a> directive might cause invalid memory reads because Nginx request header values must be null terminated. thanks Maxim Dounin.</li>

</ul></li><li> upgraded <a title="LuaNginxModule - ZhangYichun, Fri 26 Aug 2011 09:10:00 AM CST">LuaNginxModule</a> to 0.4.0.<ul><li> bugfix: <code>ngx.flush(true)</code> could not be used before I/O calls like <a title="External link to http://wiki.nginx.org/HttpLuaModule#ngx.location.capture" href="http://wiki.nginx.org/HttpLuaModule#ngx.location.capture" target="_blank">ngx.location.capture</a>. this bug had appeared in v0.3.1rc34.</li>

<li> bugfix: <code>ngx.var.VARIABLE</code> did not evaluate to <code>nil</code> when the Nginx variable's <code>valid</code> flag is <code>0</code>.</li><li> docs: various documentation improvements. thanks Nginx User.</li>

<li> bugfix: there were various places where we did not check the pointer returned by the memory allocator.</li><li> bugfix: <a title="External link to http://wiki.nginx.org/HttpLuaModule#ngx.req.get_uri_args" href="http://wiki.nginx.org/HttpLuaModule#ngx.req.get_uri_args" target="_blank">ngx.req.get_uri_args</a> and <a title="External link to http://wiki.nginx.org/HttpLuaModule#ngx.req.get_post_args" href="http://wiki.nginx.org/HttpLuaModule#ngx.req.get_post_args" target="_blank">ngx.req.get_post_args</a>
 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.</li><li> bugfix:  <a title="External link to http://wiki.nginx.org/HttpLuaModule#ngx.req.get_headers" href="http://wiki.nginx.org/HttpLuaModule#ngx.req.get_headers" target="_blank">ngx.req.get_headers</a>
 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.</li><li> bugfix: removing builtin headers via <a title="External link to http://wiki.nginx.org/HttpLuaModule#ngx.req.clear_header" href="http://wiki.nginx.org/HttpLuaModule#ngx.req.clear_header" target="_blank">ngx.req.clear_header</a> and its equivalent in huge request headers with 20+ entries could result in data loss. thanks Chris Dumoulin for the patch in <a title="External link to https://github.com/agentzh/headers-more-nginx-module/issues/6" href="https://github.com/agentzh/headers-more-nginx-module/issues/6" target="_blank">github issue #6</a>.</li>

<li>
 bugfix: could not compile with Nginx 1.1.12+ because Nginx 1.1.12 
changed its regex API. now we call PCRE API directly and require at 
least PCRE 8.21 for the PCRE JIT support in our <code><a href="http://ngx.re" target="_blank">ngx.re</a></code> API (since PCRE 8.20 had a bug in its JIT engine that it did not honor <code>pcre_malloc</code> and <code>pcre_free</code> at all).</li>

<li> bugfix: <a title="External link to http://wiki.nginx.org/HttpLuaModule#ngx.req.set_header" href="http://wiki.nginx.org/HttpLuaModule#ngx.req.set_header" target="_blank">ngx.req.set_header</a> might cause invalid memory reads because Nginx request header values must be null terminated. thanks Maxim Dounin.</li>

<li> bugfix: <code>ngx.var.VARIABLE</code> might evaluate to nil even if there is a valid value because the Nginx variable value's <code>valid</code> flag might not be initialized properly. this bad had appeared in v0.3.1rc40.</li>

<li> bugfix: <a title="External link to http://wiki.nginx.org/HttpLuaModule#ngx.req.set_header" href="http://wiki.nginx.org/HttpLuaModule#ngx.req.set_header" target="_blank">ngx.req.set_header</a> and <a title="External link to http://wiki.nginx.org/HttpLuaModule#ngx.req.clear_header" href="http://wiki.nginx.org/HttpLuaModule#ngx.req.clear_header" target="_blank">ngx.req.clear_header</a> did not handle the <code>Accept-Encoding</code> request headers properly. thanks 天街夜色.</li>

</ul></li><li> upgraded <a title="EncryptedSessionNginxModule - ZhangYichun, Tue 21 Jun 2011 04:39:00 PM CST">EncryptedSessionNginxModule</a> to 0.02.<ul><li> bugfix: the <code>-lssl</code> option broke nginx linking when <code>--with-openssl=DIR</code> is specified. thanks charlieyang for reporting this issue.</li>

</ul></li><li> upgraded <a title="SetMiscNginxModule - ZhangYichun, Fri 26 Aug 2011 09:10:00 AM CST">SetMiscNginxModule</a> to v0.22rc4.<ul><li> bugfix: fixed one place that does not check the pointer returned by the memory allocator.</li>

<li> src: converted <code>CRLF</code> in the source files and test files to <code>LF</code>.</li></ul></li><li> upgraded <a title="SrcacheNginxModule - ZhangYichun, Fri 26 Aug 2011 09:11:00 AM CST">SrcacheNginxModule</a> to v0.13rc3.<ul>

<li> bugfix: fixed a regression with <a title="XssNginxModule - ZhangYichun, Tue 21 Jun 2011 05:07:00 PM CST">XssNginxModule</a> for cache hits. this bug had appeared in v0.13rc1. thanks <a title="External link to http://weibo.com/liseen" href="http://weibo.com/liseen" target="_blank">万珣新</a>.</li>

<li> bugfix: we did not cache the <code>Location</code> response header at all for <code>301</code>/<code>302</code> responses.</li><li> bugfix: we should not blindly cache the <code>Accept-Ranges: bytes</code> response headers regardless of the actual current requests.</li>

</ul></li><li> upgraded <a title="XssNginxModule - ZhangYichun, Tue 21 Jun 2011 05:07:00 PM CST">XssNginxModule</a> to v0.03rc8.<ul><li> bugfix: fixed a few debug-level log messages; the old text was misleading.</li>
</ul></li><li> upgraded Maxim Dounin's <a title="UpstreamKeepaliveNginxModule - ZhangYichun, Fri 26 Aug 2011 09:11:00 AM CST">UpstreamKeepaliveNginxModule</a> to 0.7.<ul><li> Bugfix: unbuffered connection might not be kept alive under Linux.</li>

<li> Bugfix: module could not be built on Windows.</li><li> Bugfix: module could not be built without the ngx_http_ssl_module.</li><li> Feature: https connections support (requires patches).</li><li> Bugfix: invalid connections might be cached.</li>

<li> Bugfix: the <code>"[alert] ... open socket ... left in connection ..."</code> messages were logged on nginx worker process gracefull exit for each cached connection; the bug had appeared in version 0.3.</li>

</ul></li><li> bugfix: fixed issues with relative path DIR in the <code>--with-openssl=DIR</code> option for <code>./configure</code>.</li><li> bugfix: fixed compatibility of the packaging scripts on Darwin and *BSD. thanks nightsailer and Piotr Sikora.</li>

<li> bugfix: the <code>install</code> phony target did not depend on the <code>all</code> phony target in the Makefile generated by <code>./configure</code>. thanks <a title="External link to http://weibo.com/yaoweibin" href="http://weibo.com/yaoweibin" target="_blank">姚伟斌</a> for reporting this issue.</li>

<li> bugfix: the <code>./configure</code> script's  <code>--add-module</code> option did not accept relative path values. thanks <a title="External link to http://weibo.com/yaoweibin" href="http://weibo.com/yaoweibin" target="_blank">姚伟斌</a> for the patch.</li>

<li> bugfix: some old version of shell <code>cp</code> command does not support trailing slashes in the destination argument and could break our <code>./configure</code> script. thanks <a title="External link to http://weibo.com/yaoweibin" href="http://weibo.com/yaoweibin" target="_blank">姚伟斌</a> for reporting it.</li>

</ul></div>As always, you're welcome to report bugs and feature requests either here or directly to me :)<br><br><span>OpenResty</span> (aka. <span>ngx_openresty</span>)
 is a full-fledged web application server by bundling the standard Nginx
 core, lots of 3rd-party Nginx modules, as well as most of their 
external dependencies.<br>

<br>By taking adantage of various well-designed Nginx modules, <span>OpenResty</span>
 effectively turns the nginx server into a powerful web app server, in 
which the web developers can use the Lua programming language to script 
various existing nginx C modules and Lua modules and construct extremely
 high-performance web applications that is capable to handle 10K+ 
connections.<br>

<br><span>OpenResty</span> aims to run your server-side web 
app completely in the Nginx server, leveraging Nginx's event model to do
 non-blocking I/O not only with the HTTP clients, but also with remote 
backends like MySQL, PostgreSQL, Memcached, and Redis.<br>

<br>You can find more details on the homepage of <span>ngx_openresty</span> here:<br><br>    <a href="http://openresty.org/" target="_blank">http://<span>openresty</span>.org</a><br><br>Have fun!<br>
</div>-agentzh<br><br>