[Dovecot] Increase Timeout for HTTP Login Request

This commit is contained in:
FreddleSpl0it 2025-03-27 16:52:15 +01:00
parent 1c9d80f554
commit 4ad2422810
No known key found for this signature in database
GPG Key ID: 00E14E7634F4BEC5

View File

@ -3,10 +3,10 @@ function auth_password_verify(request, password)
return dovecot.auth.PASSDB_RESULT_USER_UNKNOWN, "No such user"
end
json = require "cjson"
ltn12 = require "ltn12"
https = require "ssl.https"
https.TIMEOUT = 5
local json = require "cjson"
local ltn12 = require "ltn12"
local https = require "ssl.https"
https.TIMEOUT = 30
local req = {
username = request.user,
@ -17,7 +17,6 @@ function auth_password_verify(request, password)
req.protocol[request.service] = true
local req_json = json.encode(req)
local res = {}
local b, c = https.request {
method = "POST",
url = "https://nginx:9082",
@ -29,11 +28,16 @@ function auth_password_verify(request, password)
sink = ltn12.sink.table(res),
insecure = true
}
if c ~= 200 then
dovecot.i_info("HTTP request failed with " .. c .. " for user " .. request.user)
return dovecot.auth.PASSDB_RESULT_INTERNAL_FAILURE, "Upstream error"
end
local api_response = json.decode(table.concat(res))
if api_response.success == true then
return dovecot.auth.PASSDB_RESULT_OK, ""
end
return dovecot.auth.PASSDB_RESULT_PASSWORD_MISMATCH, "Failed to authenticate"
end