Merge 0.10->trunk
authorKim Alvefur <zash@zash.se>
Sun, 26 Oct 2014 19:58:02 +0000 (20:58 +0100)
committerKim Alvefur <zash@zash.se>
Sun, 26 Oct 2014 19:58:02 +0000 (20:58 +0100)
1  2 
net/http.lua

diff --cc net/http.lua
index 35e02fdf7d003f99373d32b8d274ac1ab33d541a,e6bf00188d2bccfa9a1eb70d44d833d2c60c7f00..357b74520a4700e67d6d49b839327fe8bbc32361
@@@ -163,17 -164,21 +163,17 @@@ function request(u, ex, callback
        end
        local port_number = port and tonumber(port) or (using_https and 443 or 80);
  
 -      -- Connect the socket, and wrap it with net.server
 -      local conn = socket.tcp();
 -      conn:settimeout(10);
 -      local ok, err = conn:connect(host, port_number);
 -      if not ok and err ~= "timeout" then
 -              callback(nil, 0, req);
 -              return nil, err;
 -      end
 -
        local sslctx = false;
        if using_https then
-               sslctx = ex and ex.sslctx or { mode = "client", protocol = "sslv23", options = { "no_sslv2" } };
+               sslctx = ex and ex.sslctx or { mode = "client", protocol = "sslv23", options = { "no_sslv2", "no_sslv3" } };
        end
  
 -      req.handler, req.conn = assert(server.wrapclient(conn, host, port_number, listener, "*a", sslctx));
 +      local handler, conn = server.addclient(host, port_number, listener, "*a", sslctx)
 +      if not handler then
 +              callback(nil, 0, req);
 +              return nil, conn;
 +      end
 +      req.handler, req.conn = handler, conn
        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