diff --git a/src/lib-sieve/storage/dict/sieve-dict-script.c b/src/lib-sieve/storage/dict/sieve-dict-script.c index 1e72ea53aa4e45cbefb19a67631391df0ad67ddb..c3e43787afed9a18ab1d10a9ce4c96c644fd7abc 100644 --- a/src/lib-sieve/storage/dict/sieve-dict-script.c +++ b/src/lib-sieve/storage/dict/sieve-dict-script.c @@ -71,7 +71,7 @@ static int sieve_dict_script_open struct sieve_dict_storage *dstorage = (struct sieve_dict_storage *)storage; const char *name = script->name; - const char *path, *data_id; + const char *path, *data_id, *error; int ret; if ( sieve_dict_storage_get_dict @@ -82,11 +82,11 @@ static int sieve_dict_script_open (DICT_SIEVE_NAME_PATH, dict_escape_string(name), NULL); ret = dict_lookup - (dscript->dict, script->pool, path, &data_id); + (dscript->dict, script->pool, path, &data_id, &error); if ( ret <= 0 ) { if ( ret < 0 ) { sieve_script_set_critical(script, - "Failed to lookup script id from path %s", path); + "Failed to lookup script id from path %s: %s", path, error); *error_r = SIEVE_ERROR_TEMP_FAILURE; } else { sieve_script_sys_debug(script, @@ -109,7 +109,7 @@ static int sieve_dict_script_get_stream { struct sieve_dict_script *dscript = (struct sieve_dict_script *)script; - const char *path, *name = script->name, *data; + const char *path, *name = script->name, *data, *error; int ret; dscript->data_pool = @@ -119,13 +119,13 @@ static int sieve_dict_script_get_stream (DICT_SIEVE_DATA_PATH, dict_escape_string(dscript->data_id), NULL); ret = dict_lookup - (dscript->dict, dscript->data_pool, path, &data); + (dscript->dict, dscript->data_pool, path, &data, &error); if ( ret <= 0 ) { if ( ret < 0 ) { sieve_script_set_critical(script, "Failed to lookup data with id `%s' " - "for script `%s' from path %s", - dscript->data_id, name, path); + "for script `%s' from path %s: %s", + dscript->data_id, name, path, error); } else { sieve_script_set_critical(script, "Data with id `%s' for script `%s' " diff --git a/src/lib-sieve/storage/dict/sieve-dict-storage.c b/src/lib-sieve/storage/dict/sieve-dict-storage.c index 902563d099ce8c7071feb462091f23fab9c7eb00..2a82a6437546d88e63f6884a59fc829629bb2967 100644 --- a/src/lib-sieve/storage/dict/sieve-dict-storage.c +++ b/src/lib-sieve/storage/dict/sieve-dict-storage.c @@ -88,12 +88,15 @@ int sieve_dict_storage_get_dict { struct sieve_storage *storage = &dstorage->storage; struct sieve_instance *svinst = storage->svinst; + struct dict_settings dict_set; const char *error; int ret; if ( dstorage->dict == NULL ) { - ret = dict_init(dstorage->uri, DICT_DATA_TYPE_STRING, - dstorage->username, svinst->base_dir, &dstorage->dict, &error); + memset(&dict_set, 0, sizeof(dict_set)); + dict_set.username = dstorage->username; + dict_set.base_dir = svinst->base_dir; + ret = dict_init(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",