]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
dict: Drop support for multi-path iteration in dict protocol
authorSiavash Tavakoli <siavash.tavakoli@open-xchange.com>
Wed, 26 May 2021 11:15:06 +0000 (12:15 +0100)
committerSiavash Tavakoli <siavash.tavakoli@open-xchange.com>
Thu, 1 Jul 2021 19:09:52 +0000 (20:09 +0100)
Remove dict_iterate_init_multiple() since it is not used anywhere. Also
drop support in dict protocol to read multiple paths.

src/dict/dict-commands.c
src/lib-dict/dict.c
src/lib-dict/dict.h

index 3d585508c9b3fc3f375de67c186e9d66c2ccc928..5752447f15a3cc15cf5867da16a6b99239d965b2 100644 (file)
@@ -358,7 +358,7 @@ static int cmd_iterate(struct dict_connection_cmd *cmd, const char *line)
        /* <flags> <max_rows> <path> */
        flags |= DICT_ITERATE_FLAG_ASYNC;
        event_add_str(cmd->event, "key", args[2]);
-       cmd->iter = dict_iterate_init_multiple(cmd->conn->dict, args+2, flags);
+       cmd->iter = dict_iterate_init(cmd->conn->dict, NULL, args[2], flags);
        cmd->iter_flags = flags;
        if (max_rows > 0)
                dict_iterate_set_limit(cmd->iter, max_rows);
index 414c8cdb358a87927c763ef372becff328b72f29..637b28ef32ecb8e83d0fa54d279a168b15ada30e 100644 (file)
@@ -343,23 +343,14 @@ struct dict_iterate_context *
 dict_iterate_init(struct dict *dict, const struct dict_op_settings *set ATTR_UNUSED,
                  const char *path, enum dict_iterate_flags flags)
 {
+       struct dict_iterate_context *ctx;
        const char *paths[2];
 
+       i_assert(path != NULL);
+       i_assert(dict_key_prefix_is_valid(path));
+
        paths[0] = path;
        paths[1] = NULL;
-       return dict_iterate_init_multiple(dict, paths, flags);
-}
-
-struct dict_iterate_context *
-dict_iterate_init_multiple(struct dict *dict, const char *const *paths,
-                          enum dict_iterate_flags flags)
-{
-       struct dict_iterate_context *ctx;
-       unsigned int i;
-
-       i_assert(paths[0] != NULL);
-       for (i = 0; paths[i] != NULL; i++)
-               i_assert(dict_key_prefix_is_valid(paths[i]));
 
        if (dict->v.iterate_init == NULL) {
                /* not supported by backend */
index 1ac0c635c621b5eec41820efabf5eb68cdaae4ec..a3eda4052c5cb9918b01a6a384c65965b1167ac8 100644 (file)
@@ -119,9 +119,6 @@ void dict_lookup_async(struct dict *dict, const struct dict_op_settings *set,
 struct dict_iterate_context *
 dict_iterate_init(struct dict *dict, const struct dict_op_settings *set,
                  const char *path, enum dict_iterate_flags flags);
-struct dict_iterate_context *
-dict_iterate_init_multiple(struct dict *dict, const char *const *paths,
-                          enum dict_iterate_flags flags);
 /* Set async callback. Note that if dict_iterate_init() already did all the
    work, this callback may never be called. So after dict_iterate_init() you
    should call dict_iterate() in any case to see if all the results are