diff options
author | Matthew Wild <mwild1@gmail.com> | 2013-03-20 20:31:02 +0000 |
---|---|---|
committer | Matthew Wild <mwild1@gmail.com> | 2013-03-20 20:31:02 +0000 |
commit | f7e05e902acb3b0b5950d2ffcf68f4e8778f7d48 (patch) | |
tree | d047ec3165afed6c6c0c77ede044663a0e9cab25 /net/http.lua | |
parent | 04b647a6e847fa6ace495f3c8c7a2e9a5425fb1a (diff) | |
download | prosody-f7e05e902acb3b0b5950d2ffcf68f4e8778f7d48.tar.gz prosody-f7e05e902acb3b0b5950d2ffcf68f4e8778f7d48.zip |
net.http: Allow passing an SSL context or options table to be used for HTTPS requests (thanks daurnimator)
Diffstat (limited to 'net/http.lua')
-rw-r--r-- | net/http.lua | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/net/http.lua b/net/http.lua index 273eee09..9ed837e2 100644 --- a/net/http.lua +++ b/net/http.lua @@ -188,7 +188,12 @@ function request(u, ex, callback) return nil, err; end - req.handler, req.conn = server.wrapclient(conn, req.host, port, listener, "*a", using_https and { mode = "client", protocol = "sslv23" }); + local sslctx = false; + if using_https then + sslctx = ex and ex.sslctx or { mode = "client", protocol = "sslv23" }; + end + + req.handler, req.conn = server.wrapclient(conn, req.host, port, 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 |