diff --git a/src/lib-sieve/storage/dict/sieve-dict-script.c b/src/lib-sieve/storage/dict/sieve-dict-script.c index 6ccac8ebbc83ad8743062a420cbed50dddd238a5..791a6ac275099d270c8ddebdad52f9011b1db768 100644 --- a/src/lib-sieve/storage/dict/sieve-dict-script.c +++ b/src/lib-sieve/storage/dict/sieve-dict-script.c @@ -73,16 +73,13 @@ static int sieve_dict_script_open(struct sieve_script *script) const char *path, *data_id, *error; int ret; - if (sieve_dict_storage_get_dict(dstorage, &dscript->dict) < 0) - return -1; - path = t_strconcat(DICT_SIEVE_NAME_PATH, dict_escape_string(name), NULL); struct dict_op_settings set = { .username = svinst->username, }; - ret = dict_lookup(dscript->dict, &set, script->pool, path, + ret = dict_lookup(dstorage->dict, &set, script->pool, path, &data_id, &error); if (ret <= 0) { if (ret < 0) { @@ -109,6 +106,8 @@ sieve_dict_script_get_stream(struct sieve_script *script, struct sieve_instance *svinst = storage->svinst; struct sieve_dict_script *dscript = container_of(script, struct sieve_dict_script, script); + struct sieve_dict_storage *dstorage = + container_of(storage, struct sieve_dict_storage, storage); const char *path, *name = script->name, *data, *error; int ret; @@ -121,7 +120,7 @@ sieve_dict_script_get_stream(struct sieve_script *script, struct dict_op_settings set = { .username = svinst->username, }; - ret = dict_lookup(dscript->dict, &set, dscript->data_pool, path, + ret = dict_lookup(dstorage->dict, &set, dscript->data_pool, path, &data, &error); if (ret <= 0) { if (ret < 0) { diff --git a/src/lib-sieve/storage/dict/sieve-dict-storage.c b/src/lib-sieve/storage/dict/sieve-dict-storage.c index a8f48936d422bb20834e7d80fcad23400af15809..894d6753036c3de06eb3bc2d56998cee39e8dae3 100644 --- a/src/lib-sieve/storage/dict/sieve-dict-storage.c +++ b/src/lib-sieve/storage/dict/sieve-dict-storage.c @@ -61,38 +61,24 @@ sieve_dict_storage_init(struct sieve_storage *storage, e_debug(storage->event, "user=%s, uri=%s", svinst->username, uri); - dstorage->uri = p_strdup(storage->pool, uri); - storage->location = p_strconcat( storage->pool, SIEVE_DICT_STORAGE_DRIVER_NAME, ":", storage->location, ";user=", svinst->username, NULL); - return 0; -} - -int sieve_dict_storage_get_dict(struct sieve_dict_storage *dstorage, - struct dict **dict_r) -{ - struct sieve_storage *storage = &dstorage->storage; - struct sieve_instance *svinst = storage->svinst; struct dict_legacy_settings dict_set; const char *error; int ret; - if (dstorage->dict == NULL) { - i_zero(&dict_set); - dict_set.base_dir = svinst->base_dir; - ret = dict_init_legacy(dstorage->uri, &dict_set, - &dstorage->dict, &error); - if (ret < 0) { - sieve_storage_set_critical(storage, - "Failed to initialize dict with data '%s' for user '%s': %s", - dstorage->uri, svinst->username, error); - return -1; - } + i_zero(&dict_set); + dict_set.base_dir = svinst->base_dir; + ret = dict_init_legacy(uri, &dict_set, &dstorage->dict, &error); + if (ret < 0) { + sieve_storage_set_critical(storage, + "Failed to initialize dict with data '%s' for user '%s': %s", + uri, svinst->username, error); + return -1; } - *dict_r = dstorage->dict; return 0; } diff --git a/src/lib-sieve/storage/dict/sieve-dict-storage.h b/src/lib-sieve/storage/dict/sieve-dict-storage.h index b53edf441550a5ec67143d6911fe923ff21ae90f..5fd9b0469761c5f6782fe66d93778bd75e79d3ef 100644 --- a/src/lib-sieve/storage/dict/sieve-dict-storage.h +++ b/src/lib-sieve/storage/dict/sieve-dict-storage.h @@ -17,15 +17,9 @@ struct sieve_dict_storage { struct sieve_storage storage; - - const char *uri; - struct dict *dict; }; -int sieve_dict_storage_get_dict(struct sieve_dict_storage *dstorage, - struct dict **dict_r); - int sieve_dict_storage_active_script_get_name(struct sieve_storage *storage, const char **name_r); @@ -36,8 +30,6 @@ int sieve_dict_storage_active_script_get_name(struct sieve_storage *storage, struct sieve_dict_script { struct sieve_script script; - struct dict *dict; - pool_t data_pool; const char *data_id; const char *data;