acl-backend-vfile.h (dovecot-2.3.16) | : | acl-backend-vfile.h (dovecot-2.3.17) | ||
---|---|---|---|---|
#ifndef ACL_BACKEND_VFILE_H | #ifndef ACL_BACKEND_VFILE_H | |||
#define ACL_BACKEND_VFILE_H | #define ACL_BACKEND_VFILE_H | |||
#include "acl-api-private.h" | #include "acl-api-private.h" | |||
#include "mail-storage-private.h" | ||||
#define ACL_FILENAME "dovecot-acl" | #define ACL_FILENAME "dovecot-acl" | |||
#define ACLLIST_FILENAME "dovecot-acl-list" | #define ACLLIST_FILENAME "dovecot-acl-list" | |||
#define ACL_VFILE_VALIDITY_MTIME_NOTFOUND 0 | #define ACL_VFILE_VALIDITY_MTIME_NOTFOUND 0 | |||
#define ACL_VFILE_VALIDITY_MTIME_NOACCESS -1 | #define ACL_VFILE_VALIDITY_MTIME_NOACCESS -1 | |||
struct acl_vfile_validity { | struct acl_vfile_validity { | |||
time_t last_check; | time_t last_check; | |||
time_t last_read_time; | time_t last_read_time; | |||
time_t last_mtime; | time_t last_mtime; | |||
off_t last_size; | off_t last_size; | |||
}; | }; | |||
struct acl_backend_vfile_validity { | struct acl_backend_vfile_validity { | |||
struct acl_vfile_validity global_validity, local_validity; | struct acl_vfile_validity global_validity, local_validity; | |||
struct acl_vfile_validity mailbox_validity; | ||||
}; | }; | |||
struct acl_object_vfile { | struct acl_object_vfile { | |||
struct acl_object aclobj; | struct acl_object aclobj; | |||
/* if backend->global_file is NULL, assume legacy separate global | /* if backend->global_file is NULL, assume legacy separate global | |||
ACL file per mailbox */ | ACL file per mailbox */ | |||
char *global_path, *local_path; | char *global_path, *local_path; | |||
}; | }; | |||
skipping to change at line 74 | skipping to change at line 74 | |||
acl_backend_vfile_nonowner_iter_init(struct acl_backend *backend); | acl_backend_vfile_nonowner_iter_init(struct acl_backend *backend); | |||
bool acl_backend_vfile_nonowner_iter_next(struct acl_mailbox_list_context *ctx, | bool acl_backend_vfile_nonowner_iter_next(struct acl_mailbox_list_context *ctx, | |||
const char **name_r); | const char **name_r); | |||
int | int | |||
acl_backend_vfile_nonowner_iter_deinit(struct acl_mailbox_list_context *ctx); | acl_backend_vfile_nonowner_iter_deinit(struct acl_mailbox_list_context *ctx); | |||
int acl_backend_vfile_nonowner_lookups_rebuild(struct acl_backend *backend); | int acl_backend_vfile_nonowner_lookups_rebuild(struct acl_backend *backend); | |||
int acl_backend_vfile_object_get_mtime(struct acl_object *aclobj, | int acl_backend_vfile_object_get_mtime(struct acl_object *aclobj, | |||
time_t *mtime_r); | time_t *mtime_r); | |||
static inline enum mailbox_list_path_type | ||||
mail_storage_get_acl_list_path_type(struct mail_storage *storage) | ||||
{ | ||||
if (mail_storage_is_mailbox_file(storage)) { | ||||
/* mailbox is a directory (e.g. mbox) */ | ||||
return MAILBOX_LIST_PATH_TYPE_CONTROL; | ||||
} | ||||
if ((storage->class_flags & MAIL_STORAGE_CLASS_FLAG_NO_ROOT) != 0) { | ||||
/* there is no local mailbox directory */ | ||||
return MAILBOX_LIST_PATH_TYPE_CONTROL; | ||||
} | ||||
return MAILBOX_LIST_PATH_TYPE_MAILBOX; | ||||
} | ||||
#endif | #endif | |||
End of changes. 3 change blocks. | ||||
1 lines changed or deleted | 15 lines changed or added |