Browse Source

Merge branch 'fix/dovecot-lua-timeout' into staging

FreddleSpl0it 5 months ago
parent
commit
428a59dd3f
1 changed files with 10 additions and 4 deletions
  1. 10 4
      data/conf/dovecot/auth/passwd-verify.lua

+ 10 - 4
data/conf/dovecot/auth/passwd-verify.lua

@@ -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,
@@ -28,6 +28,12 @@ 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, ""