]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
acl-plugin: Adjust to API changes
authorAki Tuomi <aki.tuomi@dovecot.fi>
Wed, 7 Sep 2016 13:45:09 +0000 (16:45 +0300)
committerGitLab <gitlab@git.dovecot.net>
Thu, 8 Sep 2016 14:51:34 +0000 (17:51 +0300)
src/plugins/acl/acl-backend-vfile-acllist.c
src/plugins/acl/acl-lookup-dict.c
src/plugins/acl/acl-mailbox-list.c
src/plugins/acl/acl-mailbox.c
src/plugins/imap-acl/imap-acl-plugin.c

index 4224d589328daa5650e9f962eadd05a83dc02023..930b03ab24cfd1812aab0cb4a2a03db9b615f264 100644 (file)
@@ -184,11 +184,11 @@ acllist_append(struct acl_backend_vfile *backend, struct ostream *output,
        aclobj = acl_object_init_from_name(&backend->backend, name);
 
        iter = acl_object_list_init(aclobj);
-       while ((ret = acl_object_list_next(iter, &rights)) > 0) {
+       while (acl_object_list_next(iter, &rights)) {
                if (acl_rights_has_nonowner_lookup_changes(&rights))
                        break;
        }
-       acl_object_list_deinit(&iter);
+       ret = acl_object_list_deinit(&iter);
 
        if (acl_backend_vfile_object_get_mtime(aclobj, &acllist.mtime) < 0)
                ret = -1;
index da735fecce7eb5f549bda66266991a8683939f20..2714aa647e9ea434825db52bf2945ac2b5c3fa7b 100644 (file)
@@ -111,7 +111,7 @@ static int acl_lookup_dict_rebuild_add_backend(struct mail_namespace *ns,
        struct acl_rights rights;
        const char *name, *id_dup;
        string_t *id;
-       int ret, ret2 = 0;
+       int ret = 0;
 
        if ((ns->flags & NAMESPACE_FLAG_NOACL) != 0 || ns->owner == NULL ||
            ACL_LIST_CONTEXT(ns->list) == NULL)
@@ -120,11 +120,11 @@ static int acl_lookup_dict_rebuild_add_backend(struct mail_namespace *ns,
        id = t_str_new(128);
        backend = acl_mailbox_list_get_backend(ns->list);
        ctx = acl_backend_nonowner_lookups_iter_init(backend);
-       while ((ret = acl_backend_nonowner_lookups_iter_next(ctx, &name)) > 0) {
+       while (acl_backend_nonowner_lookups_iter_next(ctx, &name)) {
                aclobj = acl_object_init_from_name(backend, name);
 
                iter = acl_object_list_init(aclobj);
-               while ((ret = acl_object_list_next(iter, &rights)) > 0) {
+               while (acl_object_list_next(iter, &rights)) {
                        /* avoid pointless user -> user entries,
                           which some clients do */
                        if (acl_rights_has_nonowner_lookup_changes(&rights) &&
@@ -137,13 +137,11 @@ static int acl_lookup_dict_rebuild_add_backend(struct mail_namespace *ns,
                                array_append(ids, &id_dup, 1);
                        }
                }
-               acl_object_list_deinit(&iter);
-               if (ret < 0)
-                       ret2 = -1;
+               if (acl_object_list_deinit(&iter) < 0) ret = -1;
                acl_object_deinit(&aclobj);
        }
-       acl_backend_nonowner_lookups_iter_deinit(&ctx);
-       return ret < 0 || ret2 < 0 ? -1 : 0;
+       if (acl_backend_nonowner_lookups_iter_deinit(&ctx) < 0) ret = -1;
+       return ret;
 }
 
 static int
index 5cd891adc91d7e5a4b8352053cbe1737c89a747b..a4ffab61739148181ac38f0114014d004a914fb6 100644 (file)
@@ -90,7 +90,6 @@ acl_mailbox_try_list_fast(struct acl_mailbox_list_iterate_context *ctx)
        struct mail_namespace *ns = ctx->ctx.list->ns;
        struct mailbox_list_iter_update_context update_ctx;
        const char *name;
-       int ret;
 
        if ((ctx->ctx.flags & (MAILBOX_LIST_ITER_RAW_LIST |
                               MAILBOX_LIST_ITER_SELECT_SUBSCRIBED)) != 0)
@@ -120,17 +119,16 @@ acl_mailbox_try_list_fast(struct acl_mailbox_list_iterate_context *ctx)
        update_ctx.tree_ctx = mailbox_tree_init(ctx->sep);
 
        nonowner_list_ctx = acl_backend_nonowner_lookups_iter_init(backend);
-       while ((ret = acl_backend_nonowner_lookups_iter_next(nonowner_list_ctx,
-                                                            &name)) > 0) {
+       while (acl_backend_nonowner_lookups_iter_next(nonowner_list_ctx,
+                                                            &name)) {
                T_BEGIN {
                        const char *vname =
                                mailbox_list_get_vname(ns->list, name);
                        mailbox_list_iter_update(&update_ctx, vname);
                } T_END;
        }
-       acl_backend_nonowner_lookups_iter_deinit(&nonowner_list_ctx);
 
-       if (ret == 0)
+       if (acl_backend_nonowner_lookups_iter_deinit(&nonowner_list_ctx) == 0)
                ctx->lookup_boxes = update_ctx.tree_ctx;
        else
                mailbox_tree_deinit(&update_ctx.tree_ctx);
index da6c05b0f6948ba6d39e1794ec95d49b35f108ff..a1fea87af87f258018f1eb3743511cd2701ea89f 100644 (file)
@@ -102,11 +102,12 @@ static void acl_mailbox_copy_acls_from_parent(struct mailbox *box)
        parent_aclobj = acl_object_init_from_parent(alist->rights.backend,
                                                    box->name);
        iter = acl_object_list_init(parent_aclobj);
-       while (acl_object_list_next(iter, &update.rights) > 0) {
+       while (acl_object_list_next(iter, &update.rights)) {
                /* don't copy global ACL rights. */
                if (!update.rights.global)
                        (void)acl_object_update(abox->aclobj, &update);
        }
+       /* FIXME: Add error handling */
        acl_object_list_deinit(&iter);
        acl_object_deinit(&parent_aclobj);
 }
@@ -622,7 +623,6 @@ acl_mailbox_update_removed_id(struct acl_object *aclobj,
 {
        struct acl_object_list_iter *iter;
        struct acl_rights rights;
-       int ret;
 
        if (update->modify_mode != ACL_MODIFY_MODE_CLEAR &&
            update->neg_modify_mode != ACL_MODIFY_MODE_CLEAR)
@@ -633,13 +633,12 @@ acl_mailbox_update_removed_id(struct acl_object *aclobj,
 
        /* mixed clear/non-clear. see if the identifier exists anymore */
        iter = acl_object_list_init(aclobj);
-       while ((ret = acl_object_list_next(iter, &rights)) > 0) {
+       while (acl_object_list_next(iter, &rights)) {
                if (rights.id_type == update->rights.id_type &&
                    null_strcmp(rights.identifier, update->rights.identifier) == 0)
                        break;
        }
-       acl_object_list_deinit(&iter);
-       return ret == 0;
+       return acl_object_list_deinit(&iter) == 0;
 }
 
 int acl_mailbox_update_acl(struct mailbox_transaction_context *t,
index d99ce5cf664d43ec419349f374cc2acf16324417..103f8e2966de0051d20a74c881c6a74bb3b59d02 100644 (file)
@@ -190,7 +190,7 @@ static bool have_positive_owner_rights(struct acl_backend *backend,
        bool ret = FALSE;
 
        iter = acl_object_list_init(aclobj);
-       while (acl_object_list_next(iter, &rights) > 0) {
+       while (acl_object_list_next(iter, &rights)) {
                if (acl_rights_is_owner(backend, &rights)) {
                        if (rights.rights != NULL) {
                                ret = TRUE;
@@ -198,7 +198,7 @@ static bool have_positive_owner_rights(struct acl_backend *backend,
                        }
                }
        }
-       acl_object_list_deinit(&iter);
+       (void)acl_object_list_deinit(&iter);
        return ret;
 }
 
@@ -221,7 +221,7 @@ imap_acl_write_aclobj(string_t *dest, struct acl_backend *backend,
 
        tmp = t_str_new(128);
        iter = acl_object_list_init(aclobj);
-       while ((ret = acl_object_list_next(iter, &rights)) > 0) {
+       while (acl_object_list_next(iter, &rights)) {
                if (acl_rights_is_owner(backend, &rights)) {
                        if (rights.id_type == ACL_ID_OWNER && convert_owner) {
                                rights.id_type = ACL_ID_USER;
@@ -249,7 +249,7 @@ imap_acl_write_aclobj(string_t *dest, struct acl_backend *backend,
                        imap_acl_write_right(dest, tmp, &rights, TRUE);
                }
        }
-       acl_object_list_deinit(&iter);
+       ret = acl_object_list_deinit(&iter);
 
        if (!seen_positive_owner && username != NULL && add_default) {
                /* no positive owner rights returned, write default ACLs */