Software /
code /
prosody-modules
Diff
mod_auth_http_async/mod_auth_http_async.lua @ 1927:439711709d29
mod_auth_http_async: Wrap up async http request in a function
author | Kim Alvefur <zash@zash.se> |
---|---|
date | Fri, 23 Oct 2015 16:52:45 +0200 |
parent | 1749:39a0a35f02bc |
child | 1930:95bbf3c4aa27 |
line wrap: on
line diff
--- a/mod_auth_http_async/mod_auth_http_async.lua Fri Oct 23 16:49:31 2015 +0200 +++ b/mod_auth_http_async/mod_auth_http_async.lua Fri Oct 23 16:52:45 2015 +0200 @@ -18,25 +18,28 @@ local api_base = module:get_option_string("http_auth_url", ""):gsub("$host", host); if api_base == "" then error("http_auth_url required") end +local function async_http_request(url, ex); + local wait, done = waiter(); + + local content, code, request, response; + local ret; + function cb(content_, code_, request_, response_) + content, code, request, response = content_, code_, request_, response_; + done(); + end + wait(); + return content, code, request, response; +end + local provider = {}; function provider.test_password(username, password) log("debug", "test password for user %s at host %s", username, host); - local wait, done = waiter(); - local code = -1; - http.request(api_base:gsub("$user", username), { - headers = { - Authorization = "Basic "..base64(username..":"..password); - }; - }, - function(body, _code) - code = _code; - done(); - end); - - wait(); + local _, code = async_http_request(api_base:gsub("$user", username), { + headers = { Authorization = "Basic "..base64(username..":"..password); }; + }); if code >= 200 and code <= 299 then return true;