From a201220ec1736c3db1cb94190b3e7fd6faffee24 Mon Sep 17 00:00:00 2001 From: Nick Muerdter Date: Sat, 9 Dec 2017 22:52:32 -0700 Subject: [PATCH] Fix elasticsearch connections over SSL. --- src/api-umbrella/utils/elasticsearch.lua | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/src/api-umbrella/utils/elasticsearch.lua b/src/api-umbrella/utils/elasticsearch.lua index bae3b26d7..d4cc77273 100644 --- a/src/api-umbrella/utils/elasticsearch.lua +++ b/src/api-umbrella/utils/elasticsearch.lua @@ -33,11 +33,19 @@ function _M.query(path, options) end local connect_ok, connect_err = httpc:connect(server["host"], server["port"]) - if connect_err then + if not connect_ok then httpc:close() return nil, "elasticsearch connect error: " .. (connect_err or "") end + if server["scheme"] == "https" then + local ssl_ok, ssl_err = httpc:ssl_handshake(nil, server["host"], true) + if not ssl_ok then + httpc:close() + return nil, "elasticsearch ssl handshake error: " .. (ssl_err or "") + end + end + local res, err = httpc:request(options) if err then httpc:close() @@ -49,6 +57,7 @@ function _M.query(path, options) httpc:close() return nil, "elasticsearch read body error: " .. (body_err or "") end + res["body"] = body local keepalive_ok, keepalive_err = httpc:set_keepalive() if not keepalive_ok then