replace lua-socket depedency with lua-http
At the moment we are using two packages for HTTP requests from Lua:
- lua-socket (Lua library
ssl.https
) - lua-http (Lua library
http
)
This complicates packaging and is generally unnecessary.
It seems that package lua-socket (Lua library ssl.https
) offers only blocking API, and that is causing problems like e.g. #512 (closed), so let's replace lua-socket
with lua-http
.
It should "accidentally" fix #512 (closed) and also make packaging easier.
Affected modules:
- prefill (#512 (closed))
- trust_anchors bootstrap
- possibly others
Example of a non-blocking HTTP request:
function blacklist_reload()
local url = 'https://raw.githubusercontent.com/CSNOG/MFCR-blacklist/master/blacklist.txt'
local headers, stream = http_request.new_from_uri(uri):go()
assert(headers, 'HTTP client library error')
assert(tonumber(headers:get(':status')) == 200,
string.format('HTTP status %s instead of expected 200\n', headers:get(':status')))
local tmpfile = stream:get_body_as_file(5)
assert(tmpfile, 'error while getting blacklist HTTP body in limit 5 seconds')
end
worker.bg_worker.cq:wrap(blacklist_reload)
Error handling needs more work etc.