]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
acl: Added acl_backend_nonowner_lookups_rebuild()
authorTimo Sirainen <tss@iki.fi>
Fri, 4 Mar 2011 16:08:30 +0000 (18:08 +0200)
committerTimo Sirainen <tss@iki.fi>
Fri, 4 Mar 2011 16:08:30 +0000 (18:08 +0200)
src/plugins/acl/acl-api-private.h
src/plugins/acl/acl-api.c
src/plugins/acl/acl-api.h
src/plugins/acl/acl-backend-vfile-acllist.c
src/plugins/acl/acl-backend-vfile.c
src/plugins/acl/acl-backend-vfile.h

index fc2211d2c0e0f42d7e72a57a143a3305482382ec..58e7fd6d0a455d64f6214cbfca44a410b586261a 100644 (file)
@@ -21,6 +21,7 @@ struct acl_backend_vfuncs {
                                          const char **name_r);
        void (*nonowner_lookups_iter_deinit)
                (struct acl_mailbox_list_context *ctx);
+       int (*nonowner_lookups_rebuild)(struct acl_backend *backend);
 
        struct acl_object *(*object_init)(struct acl_backend *backend,
                                          const char *name);
index 532c8822255cd09f9c63223c1734453261a9e5ba..ab9b2693d2ae81030ea1e64b3174f2de74a150ac 100644 (file)
@@ -163,6 +163,11 @@ acl_backend_nonowner_lookups_iter_deinit(struct acl_mailbox_list_context **_ctx)
        ctx->backend->v.nonowner_lookups_iter_deinit(ctx);
 }
 
+int acl_backend_nonowner_lookups_rebuild(struct acl_backend *backend)
+{
+       return backend->v.nonowner_lookups_rebuild(backend);
+}
+
 void acl_rights_write_id(string_t *dest, const struct acl_rights *right)
 {
        switch (right->id_type) {
index 8f2cac872637b98b7cb3d452cc98946309b39124..07b83a013c33192221b9f8ef530ffe80abca200c 100644 (file)
@@ -121,6 +121,8 @@ int acl_backend_nonowner_lookups_iter_next(struct acl_mailbox_list_context *ctx,
                                           const char **name_r);
 void
 acl_backend_nonowner_lookups_iter_deinit(struct acl_mailbox_list_context **ctx);
+/* Force a rebuild for nonowner lookups index */
+int acl_backend_nonowner_lookups_rebuild(struct acl_backend *backend);
 
 struct acl_object *acl_object_init_from_name(struct acl_backend *backend,
                                             const char *name);
index f7e3547cd62b19d2c8c77d85df597167bb0b3af4..61fec2c541edf89b9b57af70a47ee99fa3405af3 100644 (file)
@@ -388,3 +388,11 @@ acl_backend_vfile_nonowner_iter_deinit(struct acl_mailbox_list_context *ctx)
        backend->iterating_acllist = FALSE;
        i_free(ctx);
 }
+
+int acl_backend_vfile_nonowner_lookups_rebuild(struct acl_backend *_backend)
+{
+       struct acl_backend_vfile *backend =
+               (struct acl_backend_vfile *)_backend;
+
+       return acl_backend_vfile_acllist_rebuild(backend);
+}
index c64bc7e3f361e24e73dae493ca130d0d52866901..997e170d4a61c7760905a5e1f2280908064025e7 100644 (file)
@@ -1219,6 +1219,7 @@ struct acl_backend_vfuncs acl_backend_vfile = {
        acl_backend_vfile_nonowner_iter_init,
        acl_backend_vfile_nonowner_iter_next,
        acl_backend_vfile_nonowner_iter_deinit,
+       acl_backend_vfile_nonowner_lookups_rebuild,
        acl_backend_vfile_object_init,
        acl_backend_vfile_object_init_parent,
        acl_backend_vfile_object_deinit,
index c37e6c6b95d31cfe80b9dc9f07e2535a137a08d9..e0793a21ee7bd46533ebea67f6dafa1673da0f40 100644 (file)
@@ -47,6 +47,7 @@ int acl_backend_vfile_nonowner_iter_next(struct acl_mailbox_list_context *ctx,
                                         const char **name_r);
 void
 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_object_get_mtime(struct acl_object *aclobj,
                                       time_t *mtime_r);