]> git.ipfire.org Git - thirdparty/rspamd.git/commitdiff
[Feature] Check cached maps more frequently
authorVsevolod Stakhov <vsevolod@highsecure.ru>
Tue, 14 Nov 2017 18:58:17 +0000 (18:58 +0000)
committerVsevolod Stakhov <vsevolod@highsecure.ru>
Tue, 14 Nov 2017 18:58:17 +0000 (18:58 +0000)
src/libutil/map.c

index 5e90886b5ca3e2afed2b90cd33bc47b80004ad7e..fdaecc3aed732f0da75b97a7f19dc96c13bd64dc 100644 (file)
@@ -1589,6 +1589,15 @@ rspamd_map_watch (struct rspamd_config *cfg, struct event_base *ev_base,
                        map->active_http = active_http;
                }
 
+               if (!map->active_http) {
+                       /* Check cached version more frequently as it is cheap */
+
+                       if (map->poll_timeout >= cfg->map_timeout &&
+                                       cfg->map_file_watch_multiplier < 1.0) {
+                               map->poll_timeout = map->poll_timeout * cfg->map_file_watch_multiplier;
+                       }
+               }
+
                rspamd_map_schedule_periodic (map, FALSE, TRUE, FALSE);
 
                cur = g_list_next (cur);
@@ -2018,7 +2027,8 @@ rspamd_map_add_from_ucl (struct rspamd_config *cfg,
 
                                if (bk != NULL) {
                                        if (bk->protocol == MAP_PROTO_FILE) {
-                                               map->poll_timeout = (map->poll_timeout * cfg->map_file_watch_multiplier);
+                                               map->poll_timeout = (map->poll_timeout *
+                                                               cfg->map_file_watch_multiplier);
                                        }
                                        g_ptr_array_add (map->backends, bk);