]> source.dussan.org Git - rspamd.git/commitdiff
[Minor] Add support for unix connections for redis stats backend
authorVsevolod Stakhov <vsevolod@highsecure.ru>
Fri, 30 Dec 2016 12:49:31 +0000 (12:49 +0000)
committerVsevolod Stakhov <vsevolod@highsecure.ru>
Fri, 30 Dec 2016 12:49:31 +0000 (12:49 +0000)
src/libstat/backends/redis_backend.c
src/libstat/learn_cache/redis_cache.c

index 2018f303aa60ce1538c6054ccfc4a0e41afd3cfd..b747fd75f3a06435d485d1d69a080b99e158da5f 100644 (file)
@@ -650,8 +650,15 @@ rspamd_redis_async_stat_cb (struct rspamd_stat_async_elt *elt, gpointer d)
        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);
@@ -1143,8 +1150,14 @@ rspamd_redis_runtime (struct rspamd_task *task,
 
        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");
@@ -1270,8 +1283,14 @@ rspamd_redis_learn_tokens (struct rspamd_task *task, GPtrArray *tokens,
 
        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);
index 21f35a5634937c655eeda8a562f9d6c6f64d16ab..cc6e66469e59f8128687a98151a3663814a8483e 100644 (file)
@@ -398,8 +398,15 @@ rspamd_stat_cache_redis_runtime (struct rspamd_task *task,
 
        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);