g_assert (cbdata->selected != NULL);
addr = rspamd_upstream_addr (cbdata->selected);
g_assert (addr != NULL);
- cbdata->redis = redisAsyncConnect (rspamd_inet_address_to_string (addr),
- rspamd_inet_address_get_port (addr));
+
+ if (rspamd_inet_address_get_af (addr) == AF_UNIX) {
+ cbdata->redis = redisAsyncConnectUnix (rspamd_inet_address_to_string (addr));
+ }
+ else {
+ cbdata->redis = redisAsyncConnect (rspamd_inet_address_to_string (addr),
+ rspamd_inet_address_get_port (addr));
+ }
+
g_assert (cbdata->redis != NULL);
redisLibeventAttach (cbdata->redis, redis_elt->ev_base);
addr = rspamd_upstream_addr (up);
g_assert (addr != NULL);
- rt->redis = redisAsyncConnect (rspamd_inet_address_to_string (addr),
- rspamd_inet_address_get_port (addr));
+
+ if (rspamd_inet_address_get_af (addr) == AF_UNIX) {
+ rt->redis = redisAsyncConnectUnix (rspamd_inet_address_to_string (addr));
+ }
+ else {
+ rt->redis = redisAsyncConnect (rspamd_inet_address_to_string (addr),
+ rspamd_inet_address_get_port (addr));
+ }
if (rt->redis == NULL) {
msg_err_task ("cannot connect redis");
addr = rspamd_upstream_addr (up);
g_assert (addr != NULL);
- rt->redis = redisAsyncConnect (rspamd_inet_address_to_string (addr),
- rspamd_inet_address_get_port (addr));
+ if (rspamd_inet_address_get_af (addr) == AF_UNIX) {
+ rt->redis = redisAsyncConnectUnix (rspamd_inet_address_to_string (addr));
+ }
+ else {
+ rt->redis = redisAsyncConnect (rspamd_inet_address_to_string (addr),
+ rspamd_inet_address_get_port (addr));
+ }
+
g_assert (rt->redis != NULL);
redisLibeventAttach (rt->redis, task->ev_base);
addr = rspamd_upstream_addr (up);
g_assert (addr != NULL);
- rt->redis = redisAsyncConnect (rspamd_inet_address_to_string (addr),
- rspamd_inet_address_get_port (addr));
+
+ if (rspamd_inet_address_get_af (addr) == AF_UNIX) {
+ rt->redis = redisAsyncConnectUnix (rspamd_inet_address_to_string (addr));
+ }
+ else {
+ rt->redis = redisAsyncConnect (rspamd_inet_address_to_string (addr),
+ rspamd_inet_address_get_port (addr));
+ }
+
g_assert (rt->redis != NULL);
redisLibeventAttach (rt->redis, task->ev_base);