]> git.ipfire.org Git - thirdparty/rspamd.git/commitdiff
[Fix] Rely on libev checks for file maps
authorVsevolod Stakhov <vsevolod@highsecure.ru>
Fri, 16 Oct 2020 10:20:23 +0000 (11:20 +0100)
committerVsevolod Stakhov <vsevolod@highsecure.ru>
Fri, 16 Oct 2020 10:22:48 +0000 (11:22 +0100)
src/libserver/maps/map.c

index 8b9f522b239d04624c396ff29923952a186472b8..6b708b9a8407ef542f6c69b8e1bed802e435c40c 100644 (file)
@@ -2019,34 +2019,31 @@ rspamd_map_on_stat (struct ev_loop *loop, ev_stat *w, int revents)
        struct rspamd_map *map = (struct rspamd_map *)w->data;
 
        if (w->attr.st_nlink > 0) {
+               msg_info_map ("old mtime is %t (size = %Hz), "
+                                         "new mtime is %t (size = %Hz) for map file %s",
+                               w->prev.st_mtime, (gsize)w->prev.st_size,
+                               w->attr.st_mtime, (gsize)w->attr.st_size,
+                               w->path);
+
+               /* Fire need modify flag */
+               struct rspamd_map_backend *bk;
+               guint i;
 
-               if (w->attr.st_mtime > w->prev.st_mtime) {
-                       msg_info_map ("old mtime is %t (size = %Hz), "
-                                "new mtime is %t (size = %Hz) for map file %s",
-                                       w->prev.st_mtime, (gsize)w->prev.st_size,
-                                       w->attr.st_mtime, (gsize)w->attr.st_size,
-                                       w->path);
-
-                       /* Fire need modify flag */
-                       struct rspamd_map_backend *bk;
-                       guint i;
-
-                       PTR_ARRAY_FOREACH (map->backends, i, bk) {
-                               if (bk->protocol == MAP_PROTO_FILE) {
-                                       bk->data.fd->need_modify = TRUE;
-                               }
+               PTR_ARRAY_FOREACH (map->backends, i, bk) {
+                       if (bk->protocol == MAP_PROTO_FILE) {
+                               bk->data.fd->need_modify = TRUE;
                        }
+               }
 
-                       map->next_check = 0;
-
-                       if (map->scheduled_check) {
-                               ev_timer_stop (map->event_loop, &map->scheduled_check->ev);
-                               MAP_RELEASE (map->scheduled_check, "rspamd_map_on_stat");
-                               map->scheduled_check = NULL;
-                       }
+               map->next_check = 0;
 
-                       rspamd_map_schedule_periodic (map, RSPAMD_MAP_SCHEDULE_INIT);
+               if (map->scheduled_check) {
+                       ev_timer_stop (map->event_loop, &map->scheduled_check->ev);
+                       MAP_RELEASE (map->scheduled_check, "rspamd_map_on_stat");
+                       map->scheduled_check = NULL;
                }
+
+               rspamd_map_schedule_periodic (map, RSPAMD_MAP_SCHEDULE_INIT);
        }
 }