aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorVsevolod Stakhov <vsevolod@highsecure.ru>2017-10-21 19:00:20 +0100
committerVsevolod Stakhov <vsevolod@highsecure.ru>2017-10-21 19:00:44 +0100
commit558229b49eb9fd5ad15a57a437c97c63aaf43bd8 (patch)
treee49ee9c1a39c62740c1ee1aa6f6599071c6d9f92 /src
parent812c37a88e390105861d75e91bffbb39ddee9f8f (diff)
downloadrspamd-558229b49eb9fd5ad15a57a437c97c63aaf43bd8.tar.gz
rspamd-558229b49eb9fd5ad15a57a437c97c63aaf43bd8.zip
[Fix] Actively load skip hashes map in fuzzy storage
MFH: rspamd-1.6
Diffstat (limited to 'src')
-rw-r--r--src/fuzzy_storage.c12
-rw-r--r--src/libutil/map.c5
-rw-r--r--src/libutil/map_private.h1
3 files changed, 15 insertions, 3 deletions
diff --git a/src/fuzzy_storage.c b/src/fuzzy_storage.c
index e08598969..54d3db224 100644
--- a/src/fuzzy_storage.c
+++ b/src/fuzzy_storage.c
@@ -18,6 +18,7 @@
*/
#include <libserver/rspamd_control.h>
+#include <src/libutil/map_private.h>
#include "config.h"
#include "util.h"
#include "rspamd.h"
@@ -2799,12 +2800,19 @@ start_fuzzy (struct rspamd_worker *worker)
&ctx->master_ips, NULL);
}
if (ctx->skip_map != NULL) {
- if (!rspamd_map_add_from_ucl (cfg, ctx->skip_map,
+ struct rspamd_map *m;
+
+ if ((m = rspamd_map_add_from_ucl (cfg, ctx->skip_map,
"Skip hashes", rspamd_kv_list_read, rspamd_kv_list_fin,
- (void **)&ctx->skip_hashes)) {
+ (void **)&ctx->skip_hashes)) == NULL) {
msg_warn_config ("cannot load hashes list from %s",
ucl_object_tostring (ctx->skip_map));
}
+ else {
+ if (worker->index == 0) {
+ m->active_http = TRUE;
+ }
+ }
}
/* Maps events */
diff --git a/src/libutil/map.c b/src/libutil/map.c
index 892122ef0..892bf0e0c 100644
--- a/src/libutil/map.c
+++ b/src/libutil/map.c
@@ -1565,7 +1565,10 @@ rspamd_map_watch (struct rspamd_config *cfg, struct event_base *ev_base,
map = cur->data;
map->ev_base = ev_base;
map->r = resolver;
- map->active_http = active_http;
+
+ if (active_http) {
+ map->active_http = active_http;
+ }
rspamd_map_schedule_periodic (map, FALSE, TRUE, FALSE);
diff --git a/src/libutil/map_private.h b/src/libutil/map_private.h
index 79c3164e6..f1a9d22e4 100644
--- a/src/libutil/map_private.h
+++ b/src/libutil/map_private.h
@@ -20,6 +20,7 @@
#include "mem_pool.h"
#include "keypair.h"
#include "unix-std.h"
+#include "map.h"
#include "ref.h"
typedef void (*rspamd_map_dtor) (gpointer p);