summaryrefslogtreecommitdiffstats
path: root/src/libstat
diff options
context:
space:
mode:
authorVsevolod Stakhov <vsevolod@highsecure.ru>2018-04-20 15:10:59 +0100
committerVsevolod Stakhov <vsevolod@highsecure.ru>2018-04-20 15:10:59 +0100
commitefc103598b304ad1292cdf590e36255b8b16c342 (patch)
treeb30665f871ec5c38308f30fc78fcb35ae809143d /src/libstat
parent8f6c12a2eb6342594a9b8dc3408bec472b82080a (diff)
downloadrspamd-efc103598b304ad1292cdf590e36255b8b16c342.tar.gz
rspamd-efc103598b304ad1292cdf590e36255b8b16c342.zip
[Minor] Avoid overriding of GError if Redis is unavailable
Diffstat (limited to 'src/libstat')
-rw-r--r--src/libstat/backends/redis_backend.c33
1 files changed, 21 insertions, 12 deletions
diff --git a/src/libstat/backends/redis_backend.c b/src/libstat/backends/redis_backend.c
index 68da6bc89..79fafd15b 100644
--- a/src/libstat/backends/redis_backend.c
+++ b/src/libstat/backends/redis_backend.c
@@ -1040,9 +1040,11 @@ rspamd_redis_timeout (gint fd, short what, gpointer d)
redisAsyncFree (redis);
}
- g_set_error (&rt->err, rspamd_redis_stat_quark (), ETIMEDOUT,
- "error getting reply from redis server %s: timeout",
- rspamd_upstream_name (rt->selected));
+ if (!rt->err) {
+ g_set_error (&rt->err, rspamd_redis_stat_quark (), ETIMEDOUT,
+ "error getting reply from redis server %s: timeout",
+ rspamd_upstream_name (rt->selected));
+ }
}
/* Called when we have connected to the redis server and got stats */
@@ -1091,9 +1093,11 @@ rspamd_redis_connected (redisAsyncContext *c, gpointer r, gpointer priv)
rspamd_upstream_name (rt->selected), c->errstr);
rspamd_upstream_fail (rt->selected);
- g_set_error (&rt->err, rspamd_redis_stat_quark (), c->err,
- "error getting reply from redis server %s: %s",
- rspamd_upstream_name (rt->selected), c->errstr);
+ if (!rt->err) {
+ g_set_error (&rt->err, rspamd_redis_stat_quark (), c->err,
+ "error getting reply from redis server %s: %s",
+ rspamd_upstream_name (rt->selected), c->errstr);
+ }
}
}
@@ -1176,9 +1180,12 @@ rspamd_redis_processed (redisAsyncContext *c, gpointer r, gpointer priv)
if (rt->redis) {
rspamd_upstream_fail (rt->selected);
}
- g_set_error (&rt->err, rspamd_redis_stat_quark (), c->err,
- "cannot get values: error getting reply from redis server %s: %s",
- rspamd_upstream_name (rt->selected), c->errstr);
+
+ if (!rt->err) {
+ g_set_error (&rt->err, rspamd_redis_stat_quark (), c->err,
+ "cannot get values: error getting reply from redis server %s: %s",
+ rspamd_upstream_name (rt->selected), c->errstr);
+ }
}
if (rt->has_event) {
@@ -1206,9 +1213,11 @@ rspamd_redis_learned (redisAsyncContext *c, gpointer r, gpointer priv)
rspamd_upstream_fail (rt->selected);
}
- g_set_error (&rt->err, rspamd_redis_stat_quark (), c->err,
- "cannot get learned: error getting reply from redis server %s: %s",
- rspamd_upstream_name (rt->selected), c->errstr);
+ if (!rt->err) {
+ g_set_error (&rt->err, rspamd_redis_stat_quark (), c->err,
+ "cannot get learned: error getting reply from redis server %s: %s",
+ rspamd_upstream_name (rt->selected), c->errstr);
+ }
}
if (rt->has_event) {