const char *acl_attribute_iter_next(struct mailbox_attribute_iter *iter)
{
struct acl_mailbox_attribute_iter *aiter =
- (struct acl_mailbox_attribute_iter *)iter;
+ container_of(iter, struct acl_mailbox_attribute_iter, iter);
struct acl_mailbox *abox = ACL_CONTEXT_REQUIRE(iter->box);
const char *key;
int acl_attribute_iter_deinit(struct mailbox_attribute_iter *iter)
{
struct acl_mailbox_attribute_iter *aiter =
- (struct acl_mailbox_attribute_iter *)iter;
+ container_of(iter, struct acl_mailbox_attribute_iter, iter);
struct acl_mailbox *abox = ACL_CONTEXT_REQUIRE(iter->box);
int ret = aiter->failed ? -1 : 0;
{
struct event *event = _backend->event;
struct acl_backend_vfile *backend =
- (struct acl_backend_vfile *)_backend;
+ container_of(_backend, struct acl_backend_vfile, backend);
struct stat st;
const char *value, *const *tmp;
const char *global_path;
static void acl_backend_vfile_deinit(struct acl_backend *_backend)
{
struct acl_backend_vfile *backend =
- (struct acl_backend_vfile *)_backend;
+ container_of(_backend, struct acl_backend_vfile, backend);
if (backend->acllist_pool != NULL) {
array_free(&backend->acllist);
struct acl_vfile_validity *validity)
{
struct acl_backend_vfile *backend =
- (struct acl_backend_vfile *)aclobj->backend;
+ container_of(aclobj->backend, struct acl_backend_vfile, backend);
struct event *event = backend->backend.event;
struct stat st;
int ret;
struct acl_vfile_validity *validity)
{
struct acl_backend_vfile *backend =
- (struct acl_backend_vfile *)_aclobj->backend;
+ container_of(_aclobj->backend, struct acl_backend_vfile, backend);
struct stat st;
if (acl_global_file_refresh(_aclobj->backend->global_file) < 0)
static int acl_backend_vfile_object_refresh_cache(struct acl_object *_aclobj)
{
- struct acl_object_vfile *aclobj = (struct acl_object_vfile *)_aclobj;
+ struct acl_object_vfile *aclobj =
+ container_of(_aclobj, struct acl_object_vfile, aclobj);
struct acl_backend_vfile *backend =
- (struct acl_backend_vfile *)_aclobj->backend;
+ container_of(_aclobj->backend, struct acl_backend_vfile, backend);
struct acl_backend_vfile_validity *old_validity;
struct acl_backend_vfile_validity validity;
time_t mtime;
acl_mail_update_flags(struct mail *_mail, enum modify_type modify_type,
enum mail_flags flags)
{
- struct mail_private *mail = (struct mail_private *)_mail;
+ struct mail_private *mail =
+ container_of(_mail, struct mail_private, mail);
union mail_module_context *amail = ACL_MAIL_CONTEXT(mail);
bool acl_flags, acl_flag_seen, acl_flag_del;
static void acl_mail_expunge(struct mail *_mail)
{
- struct mail_private *mail = (struct mail_private *)_mail;
+ struct mail_private *mail =
+ container_of(_mail, struct mail_private, mail);
union mail_module_context *amail = ACL_MAIL_CONTEXT(mail);
int ret;
void acl_mail_allocated(struct mail *_mail)
{
struct acl_mailbox *abox = ACL_CONTEXT(_mail->box);
- struct mail_private *mail = (struct mail_private *)_mail;
+ struct mail_private *mail =
+ container_of(_mail, struct mail_private, mail);
struct mail_vfuncs *v = mail->vlast;
union mail_module_context *amail;
acl_shared_namespace_add(struct mail_namespace *ns,
struct mail_storage *storage, const char *userdomain)
{
- struct shared_storage *sstorage = (struct shared_storage *)storage;
+ struct shared_storage *sstorage =
+ container_of(storage, struct shared_storage, storage);
struct mail_namespace *new_ns = ns;
struct mailbox_list_iterate_context *iter;
const struct mailbox_info *info;