Merge 0.9->0.10
authorMatthew Wild <mwild1@gmail.com>
Mon, 16 Dec 2013 23:32:11 +0000 (23:32 +0000)
committerMatthew Wild <mwild1@gmail.com>
Mon, 16 Dec 2013 23:32:11 +0000 (23:32 +0000)
net/http.lua
net/server_select.lua

index 5ec3163c06644269a1211e7ff2fdf3c2d796b92c..ab9ec7b6c86f6b4e45c8d8457d0b74bc16ca1b1e 100644 (file)
@@ -20,6 +20,7 @@ local t_insert, t_concat = table.insert, table.concat;
 local pairs = pairs;
 local tonumber, tostring, xpcall, select, traceback =
       tonumber, tostring, xpcall, select, debug.traceback;
+local assert, error = assert, error
 
 local log = require "util.logger".init("http");
 
@@ -173,7 +174,7 @@ function request(u, ex, callback)
                sslctx = ex and ex.sslctx or { mode = "client", protocol = "sslv23", options = { "no_sslv2" } };
        end
 
-       req.handler, req.conn = server.wrapclient(conn, host, port_number, listener, "*a", sslctx);
+       req.handler, req.conn = assert(server.wrapclient(conn, host, port_number, listener, "*a", sslctx));
        req.write = function (...) return req.handler:write(...); end
 
        req.callback = function (content, code, request, response) log("debug", "Calling callback, status %s", code or "---"); return select(2, xpcall(function () return callback(content, code, request, response) end, handleerr)); end
index 4721d6ad877ec32bc4702e70f852eaf4575b6915..c5e0772f8a7ff1bc32e255487d817e8f27d7ede2 100644 (file)
@@ -920,13 +920,9 @@ local wrapclient = function( socket, ip, serverport, listeners, pattern, sslctx
                        -- When socket is writeable, call onconnect
                        local _sendbuffer = handler.sendbuffer;
                        handler.sendbuffer = function ()
-                               _sendlistlen = removesocket( _sendlist, socket, _sendlistlen );
                                handler.sendbuffer = _sendbuffer;
                                listeners.onconnect(handler);
-                               -- If there was data with the incoming packet, handle it now.
-                               if #handler:bufferqueue() > 0 then
-                                       return _sendbuffer();
-                               end
+                               return _sendbuffer(); -- Send any queued outgoing data
                        end
                end
        end