bugfix: we should always test if the request object pointer is null in the ngx.req.*_body API.
feature: added new Nginx API for Lua: ngx.req.set_method(method_id) and ngx.req.get_method. thanks Matthieu Tourne for suggesting these.
bugfix: ngx.req.clear_header() did not remove all the instances for the builtin headers or custom headers. bugfix: ngx.req.clear_header() might accidentally remove request headers that are not specified at all and leave the specified headers with just empty header values when removing multiple built-in headers. thanks Matthieu Tourne for reporting the issues.
bugfix: tcpsock:receive() and tcpsock:send() always returned "error" as the error message. now it properly returns the system error string.
bugfix: the tcp cosocket object might automatically re-connect to the remote after it connected successfully in a single run (that is, no EAGAIN returned in the middle) and DNS domain names were used.
feature: implemented the UDP cosocket API, ngx.socket.udp().
fixed a minor coding style issue.
merged branch "master" to "udp-socket".
Merge remote-tracking branch 'origin/master' into udp-socket
optimize: udp cosocket: now we use a global (static) receive buffer to avoid dynamic allocations on heap.
bugfix: the udpsock:connect() method always returned the (vague) error strng "connect peer error" instead of the (detailed) system error string.
added more tests for udp cosockets.
bugfix: the tcpsock:connect() method always returned the (vague) error strng "connect peer error" instead of the (detailed) system error string.
udpsock:connect(): now we fetch ngx_socket_errno in case of error as soon as possible.
Merge remote-tracking branch 'origin/master' into udp-socket
fixed the test suite to reflect recent changes.
bugfix: the udp 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 "socket busy" error string if it is indeed the case.
bugfix: the tcp/stream 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 "socket busy" error string if it is indeed the case.
merged branch "master" into "udp-socket".
updated docs to reflect recent changes.