aboutsummaryrefslogtreecommitdiffstats
path: root/src/libstat/learn_cache/redis_cache.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/libstat/learn_cache/redis_cache.c')
-rw-r--r--src/libstat/learn_cache/redis_cache.c17
1 files changed, 16 insertions, 1 deletions
diff --git a/src/libstat/learn_cache/redis_cache.c b/src/libstat/learn_cache/redis_cache.c
index 82c354bb6..a76ad585c 100644
--- a/src/libstat/learn_cache/redis_cache.c
+++ b/src/libstat/learn_cache/redis_cache.c
@@ -396,7 +396,22 @@ rspamd_stat_cache_redis_runtime (struct rspamd_task *task,
rspamd_inet_address_get_port (addr));
}
- g_assert (rt->redis != NULL);
+ if (rt->redis == NULL) {
+ msg_warn_task ("cannot connect to redis server %s: %s",
+ rspamd_inet_address_to_string_pretty (addr),
+ strerror (errno));
+
+ return NULL;
+ }
+ else if (rt->redis->err != REDIS_OK) {
+ msg_warn_task ("cannot connect to redis server %s: %s",
+ rspamd_inet_address_to_string_pretty (addr),
+ rt->redis->errstr);
+ redisAsyncFree (rt->redis);
+ rt->redis = NULL;
+
+ return NULL;
+ }
redisLibevAttach (task->event_loop, rt->redis);