commit 02db3e2: [Fix] Fix synchronous auth/select in lua_redis
Vsevolod Stakhov
vsevolod at rspamd.com
Wed Aug 31 22:35:03 UTC 2022
Author: Vsevolod Stakhov
Date: 2022-08-31 23:25:02 +0100
URL: https://github.com/rspamd/rspamd/commit/02db3e291d9b1301faa052af992ee923e2d266e3 (HEAD -> master)
[Fix] Fix synchronous auth/select in lua_redis
Issue: #4255
---
lualib/lua_redis.lua | 17 ++++++++++++++++-
1 file changed, 16 insertions(+), 1 deletion(-)
diff --git a/lualib/lua_redis.lua b/lualib/lua_redis.lua
index fa7d52992..a34adff6b 100644
--- a/lualib/lua_redis.lua
+++ b/lualib/lua_redis.lua
@@ -1422,21 +1422,36 @@ local function redis_connect_sync(redis_params, is_write, key, cfg, ev_base)
local ret,conn = rspamd_redis.connect_sync(options)
if not ret then
- logger.errx('cannot execute redis request: %s', conn)
+ logger.errx('cannot create redis connection: %s', conn)
addr:fail()
return false,nil,addr
end
if conn then
+ local need_exec = false
if redis_params['password'] then
conn:add_cmd('AUTH', {redis_params['password']})
+ need_exec = true
end
if redis_params['db'] then
conn:add_cmd('SELECT', {tostring(redis_params['db'])})
+ need_exec = true
elseif redis_params['dbname'] then
conn:add_cmd('SELECT', {tostring(redis_params['dbname'])})
+ need_exec = true
+ end
+
+ if need_exec then
+ local exec_ret, res = conn:exec()
+
+ if not exec_ret then
+ logger.errx('cannot prepare redis connection (authentication or db selection failure): %s',
+ res)
+ addr:fail()
+ return false,nil,addr
+ end
end
end
More information about the Commits
mailing list