<div dir="ltr"><div dir="ltr"><div>Hi folks,</div><div><br></div><div>I am happy to announce the new formal release, 1.21.4.2, of our OpenResty </div><div>web platform based on NGINX and LuaJIT. You can check the full release note here:</div><div><br></div><div><a href="http://openresty.org/en/ann-1021004002.html">http://openresty.org/en/ann-1021004002.html</a></div><div><br></div><div>You can download the software packages here:</div><div><br></div><div><a href="http://openresty.org/en/download.html">http://openresty.org/en/download.html</a></div><div><br></div><div>The highlights of this release include:</div><div><br></div><div>- LuaJIT</div><div>    - Avoid negation of signed integers in C that may hold INT*_MIN, since</div><div>      recent C compilers 'take advantage' of the undefined behavior, this</div><div>      completely changes the meaning of expressions like (k == -k).</div><div>    - Correct fix for stack check when recording BC_VARG.</div><div>    - Fix trace join to BC_JLOOP originating from BC_ITERN.</div><div>    - Fix math.floor() and math.ceil().</div><div>    - Many fixes imported from Mike Pall's upstream <a href="https://github.com/luajit/luajit">https://github.com/luajit/luajit</a> repository.</div><div>- Fixed a bug that uses memory after free when encountering an invalid IF-Match request header. </div><div>- Implements monotonic_msec() and monotonic_time() in resty.core.time.</div><div>- Includes Apple Silicon FFI ABI limitation workaround.</div><div>- Reimplemented tcpsock:sslhandshake, coroutine wrapper, and ngx.req.is_internal with FFI.</div><div>- SSL/TLS supports passphrase protected private key.</div><div>- Fixes a segmentation fault when getting headers via ngx.req.raw_header with</div><div>  malformed requests.</div><div>- Fixed potential null pointer dereference.</div><div>- lua-cjson module</div><div>    - empty_array can not work on Apple because cjson did not compare light userdata</div><div>      address with masked address. Since we used json_lightudata_mask when creating</div><div>      lightuserdata, same mask should be applied when comparing the return of touserdata.</div><div>- headers-more-nginx-module module</div><div>    - Fixes crashes while accessing uninitialized pointers.</div><div>- lua-resty-websocket module</div><div>    - Adds mtls client cert support.</div><div>- lua-resty-memcached module</div><div>    - Implements init_pipeline(), commit_pipeline(), and cancel_pipeline().</div><div><br></div><div>For a comprehensive list of changes, please refer to the provided webpage.</div><div><br></div><div>Enjoy!</div><div><br></div><div>Best regards,</div><div>Jiahao</div></div></div>