diff options
Diffstat (limited to 'src/libstat/learn_cache/redis_cache.c')
-rw-r--r-- | src/libstat/learn_cache/redis_cache.c | 17 |
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); |