diff options
Diffstat (limited to 'src/lua/lua_redis.c')
-rw-r--r-- | src/lua/lua_redis.c | 25 |
1 files changed, 20 insertions, 5 deletions
diff --git a/src/lua/lua_redis.c b/src/lua/lua_redis.c index 9c5c3fde7..b845b6d49 100644 --- a/src/lua/lua_redis.c +++ b/src/lua/lua_redis.c @@ -927,8 +927,16 @@ lua_redis_make_request_sync (lua_State *L) if (ret) { double_to_tv (timeout, &tv); - ctx = redisConnectWithTimeout (rspamd_inet_address_to_string (addr->addr), - rspamd_inet_address_get_port (addr->addr), tv); + + if (rspamd_inet_address_get_af (addr->addr) == AF_UNIX) { + ctx = redisConnectUnixWithTimeout ( + rspamd_inet_address_to_string (addr->addr), tv); + } + else { + ctx = redisConnectWithTimeout ( + rspamd_inet_address_to_string (addr->addr), + rspamd_inet_address_get_port (addr->addr), tv); + } if (ip) { rspamd_inet_address_free (ip); @@ -1086,9 +1094,16 @@ lua_redis_connect_sync (lua_State *L) ctx = g_malloc0 (sizeof (struct lua_redis_ctx)); REF_INIT_RETAIN (ctx, lua_redis_dtor); ctx->flags = flags; - ctx->d.sync = redisConnectWithTimeout ( - rspamd_inet_address_to_string (addr->addr), - rspamd_inet_address_get_port (addr->addr), tv); + + if (rspamd_inet_address_get_af (addr->addr) == AF_UNIX) { + ctx->d.sync = redisConnectUnixWithTimeout ( + rspamd_inet_address_to_string (addr->addr), tv); + } + else { + ctx->d.sync = redisConnectWithTimeout ( + rspamd_inet_address_to_string (addr->addr), + rspamd_inet_address_get_port (addr->addr), tv); + } if (ip) { rspamd_inet_address_free (ip); |