From f988345bc29ef022ae73f96b3ec841d39c46d30a Mon Sep 17 00:00:00 2001 From: Timo Sirainen Date: Fri, 6 Oct 2017 16:54:20 +0300 Subject: [PATCH] acl: Cleanup - move code to a new acl_vfile_validity_has_changed() --- src/plugins/acl/acl-backend-vfile.c | 40 +++++++++++++++++------------ 1 file changed, 23 insertions(+), 17 deletions(-) diff --git a/src/plugins/acl/acl-backend-vfile.c b/src/plugins/acl/acl-backend-vfile.c index 7a53e5e175..46ab558f00 100644 --- a/src/plugins/acl/acl-backend-vfile.c +++ b/src/plugins/acl/acl-backend-vfile.c @@ -455,6 +455,28 @@ acl_backend_vfile_read_with_retry(struct acl_object *aclobj, return ret <= 0 ? -1 : 0; } +static int +acl_vfile_validity_has_changed(struct acl_backend_vfile *backend, + const struct acl_vfile_validity *validity, + const struct stat *st) +{ + if (st->st_mtime == validity->last_mtime && + st->st_size == validity->last_size) { + /* same timestamp, but if it was modified within the + same second we want to refresh it again later (but + do it only after a couple of seconds so we don't + keep re-reading it all the time within those + seconds) */ + time_t cache_secs = backend->cache_secs; + + if (validity->last_read_time != 0 && + (st->st_mtime < validity->last_read_time - cache_secs || + ioloop_time - validity->last_read_time <= cache_secs)) + return FALSE; + } + return TRUE; +} + static int acl_backend_vfile_refresh(struct acl_object *aclobj, const char *path, struct acl_vfile_validity *validity) @@ -488,23 +510,7 @@ acl_backend_vfile_refresh(struct acl_object *aclobj, const char *path, i_error("stat(%s) failed: %m", path); return -1; } - - if (st.st_mtime == validity->last_mtime && - st.st_size == validity->last_size) { - /* same timestamp, but if it was modified within the - same second we want to refresh it again later (but - do it only after a couple of seconds so we don't - keep re-reading it all the time within those - seconds) */ - time_t cache_secs = backend->cache_secs; - - if (validity->last_read_time != 0 && - (st.st_mtime < validity->last_read_time - cache_secs || - ioloop_time - validity->last_read_time <= cache_secs)) - return 0; - } - - return 1; + return acl_vfile_validity_has_changed(backend, validity, &st) ? 1 : 0; } int acl_backend_vfile_object_get_mtime(struct acl_object *aclobj, -- 2.47.3