From: Siavash Tavakoli Date: Thu, 1 Jul 2021 12:52:29 +0000 (+0100) Subject: dict: Use dict-init-cache X-Git-Tag: 2.3.17~202 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=f38100a5feb4aadfbaad8986c6685dff697d559c;p=thirdparty%2Fdovecot%2Fcore.git dict: Use dict-init-cache Make use of dict-init-cache for initialization and deinitialization of dicts. --- diff --git a/src/dict/dict-connection.c b/src/dict/dict-connection.c index d32adc9712..b23272532e 100644 --- a/src/dict/dict-connection.c +++ b/src/dict/dict-connection.c @@ -12,6 +12,7 @@ #include "dict-settings.h" #include "dict-commands.h" #include "dict-connection.h" +#include "dict-init-cache.h" #include @@ -95,7 +96,7 @@ static int dict_connection_dict_init(struct dict_connection *conn) i_zero(&dict_set); dict_set.base_dir = dict_settings->base_dir; dict_set.event_parent = conn->conn.event; - if (dict_init(uri, &dict_set, &conn->dict, &error) < 0) { + if (dict_init_cache_get(conn->name, uri, &dict_set, &conn->dict, &error) < 0) { /* dictionary initialization failed */ e_error(conn->conn.event, "Failed to initialize dictionary '%s': %s", conn->name, error); @@ -162,7 +163,7 @@ bool dict_connection_unref(struct dict_connection *conn) } if (conn->dict != NULL) - dict_deinit(&conn->dict); + dict_init_cache_unref(&conn->dict); if (array_is_created(&conn->transactions)) array_free(&conn->transactions); diff --git a/src/dict/main.c b/src/dict/main.c index a8ab615002..589efc6570 100644 --- a/src/dict/main.c +++ b/src/dict/main.c @@ -17,6 +17,7 @@ #include "dict-commands.h" #include "dict-connection.h" #include "dict-settings.h" +#include "dict-init-cache.h" #include "main.h" #include @@ -168,6 +169,8 @@ int main(int argc, char *argv[]) master_service_init_finish(master_service); master_service_run(master_service, client_connected); + /* clean up cached dicts */ + dict_init_cache_destroy_all(); main_deinit(); master_service_deinit(&master_service); return 0;