certmanager: Fix previous commit
[prosody.git] / net / http.lua
index 5ec3163c06644269a1211e7ff2fdf3c2d796b92c..e6bf00188d2bccfa9a1eb70d44d833d2c60c7f00 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");
 
@@ -71,6 +72,10 @@ function listener.ondisconnect(conn, err)
        requests[conn] = nil;
 end
 
+function listener.ondetach(conn)
+       requests[conn] = nil;
+end
+
 local function request_reader(request, data, err)
        if not request.parser then
                local function error_cb(reason)
@@ -170,10 +175,10 @@ function request(u, ex, callback)
 
        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 = 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