]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
dict-cdb: Fix API for v2.3
authorAki Tuomi <aki.tuomi@dovecot.fi>
Mon, 20 Mar 2017 18:22:36 +0000 (20:22 +0200)
committerAki Tuomi <aki.tuomi@dovecot.fi>
Mon, 20 Mar 2017 18:38:20 +0000 (20:38 +0200)
Broken by 39ea5717264668e2c7f9f7986eb821d21785f47f

src/lib-dict/dict-cdb.c

index 5e18f32862b5ef298abde48a54a0b93f29ffa46e..df156d4cf0e5efc6fe008b90ab37f9e06ea52139 100644 (file)
@@ -24,9 +24,7 @@ static void cdb_dict_deinit(struct dict *_dict);
 
 static int
 cdb_dict_init(struct dict *driver, const char *uri,
-             enum dict_data_type value_type ATTR_UNUSED,
-             const char *username ATTR_UNUSED,
-             const char *base_dir ATTR_UNUSED,
+             const struct dict_settings *set ATTR_UNUSED,
              struct dict **dict_r, const char **error_r)
 {
        struct cdb_dict *dict;
@@ -76,8 +74,10 @@ static void cdb_dict_deinit(struct dict *_dict)
        i_free(dict);
 }
 
-static int cdb_dict_lookup(struct dict *_dict, pool_t pool,
-                          const char *key, const char **value_r)
+static int
+cdb_dict_lookup(struct dict *_dict, pool_t pool,
+               const char *key, const char **value_r,
+               const char **error_r)
 {
        struct cdb_dict *dict = (struct cdb_dict *)_dict;
        unsigned datalen;
@@ -102,7 +102,7 @@ static int cdb_dict_lookup(struct dict *_dict, pool_t pool,
                *value_r = NULL;
                /* something bad with db */
                if (ret < 0) {
-                       i_error("cdb_find(%s) failed: %m", dict->path);
+                       *error_r = t_strdup_printf("cdb_find(%s) failed: %m", dict->path);
                        return -1;
                }
                /* found nothing */
@@ -112,7 +112,7 @@ static int cdb_dict_lookup(struct dict *_dict, pool_t pool,
        datalen = cdb_datalen(&dict->cdb);
        data = p_malloc(pool, datalen + 1);
        if (cdb_read(&dict->cdb, data, datalen, cdb_datapos(&dict->cdb)) < 0) {
-               i_error("cdb_read(%s) failed: %m", dict->path);
+               *error_r = t_strdup_printf("cdb_read(%s) failed: %m", dict->path);
                return -1;
        }
        *value_r = data;