Lines Matching defs:backend

11 #include "acl-backend-vfile.h"
22 struct acl_backend_vfile *backend;
25 pool = pool_alloconly_create("ACL backend", 512);
26 backend = p_new(pool, struct acl_backend_vfile, 1);
27 backend->backend.pool = pool;
28 return &backend->backend;
34 struct acl_backend_vfile *backend =
40 backend->global_path = p_strdup_empty(_backend->pool, *tmp);
41 backend->cache_secs = ACL_VFILE_DEFAULT_CACHE_SECS;
47 if (str_to_uint(*tmp + 11, &backend->cache_secs) < 0) {
57 if (backend->global_path != NULL) {
58 if (stat(backend->global_path, &st) < 0) {
61 backend->global_path);
66 acl_global_file_init(backend->global_path, backend->cache_secs,
71 if (backend->global_path == NULL)
75 backend->global_path);
78 backend->global_path);
90 struct acl_backend_vfile *backend =
93 if (backend->acllist_pool != NULL) {
94 array_free(&backend->acllist);
95 pool_unref(&backend->acllist_pool);
99 pool_unref(&backend->backend.pool);
103 acl_backend_vfile_get_local_dir(struct acl_backend *backend,
106 struct mail_namespace *ns = mailbox_list_get_namespace(backend->list);
115 if (backend->globals_only)
152 struct acl_backend_vfile *backend =
158 aclobj->aclobj.backend = _backend;
170 if (backend->global_path != NULL &&
173 i_strconcat(backend->global_path, "/", vname, NULL);
184 get_parent_mailbox(struct acl_backend *backend, const char *name)
188 p = strrchr(name, mailbox_list_get_hierarchy_sep(backend->list));
193 acl_backend_vfile_exists(struct acl_backend_vfile *backend, const char *path,
198 if (validity->last_check + (time_t)backend->cache_secs > ioloop_time) {
224 struct acl_backend_vfile *backend =
244 ret = acl_backend_vfile_exists(backend, path,
256 ret = acl_backend_vfile_exists(backend, local_path,
261 if (ret == 0 && backend->global_path != NULL) {
267 global_path = t_strconcat(backend->global_path, "/", name, NULL);
268 ret = acl_backend_vfile_exists(backend, global_path,
277 acl_backend_vfile_object_init_parent(struct acl_backend *backend,
286 while ((parent = get_parent_mailbox(backend, child_name)) != NULL) {
287 if (acl_backend_vfile_has_acl(backend, parent))
293 parent = acl_backend_get_default_object(backend)->name;
295 return acl_backend_vfile_object_init(backend, parent);
329 if (aclobj->backend->debug)
333 if (aclobj->backend->debug)
366 if (aclobj->backend->debug)
459 acl_vfile_validity_has_changed(struct acl_backend_vfile *backend,
470 time_t cache_secs = backend->cache_secs;
484 struct acl_backend_vfile *backend =
485 (struct acl_backend_vfile *)aclobj->backend;
492 validity->last_check + (time_t)backend->cache_secs > ioloop_time)
513 return acl_vfile_validity_has_changed(backend, validity, &st) ? 1 : 0;
521 validity = acl_cache_get_validity(aclobj->backend->cache, aclobj->name);
538 struct acl_backend_vfile *backend =
539 (struct acl_backend_vfile *)_aclobj->backend;
542 if (acl_global_file_refresh(_aclobj->backend->global_file) < 0)
545 acl_global_file_last_stat(_aclobj->backend->global_file, &st);
548 return acl_vfile_validity_has_changed(backend, validity, &st) ? 1 : 0;
554 struct acl_backend_vfile *backend =
555 (struct acl_backend_vfile *)_aclobj->backend;
561 old_validity = acl_cache_get_validity(_aclobj->backend->cache,
563 ret = _aclobj->backend->global_file != NULL ?
588 if (_aclobj->backend->global_file != NULL) {
592 acl_global_file_last_stat(_aclobj->backend->global_file, &st);
608 acl_cache_set_validity(_aclobj->backend->cache,
612 acl_backend_vfile_acllist_verify(backend, _aclobj->name, mtime);
623 old_validity = acl_cache_get_validity(_aclobj->backend->cache,
628 old_validity = acl_cache_get_validity(_aclobj->backend->cache,