]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
lib-dict: fail, file, redis - Remove support for legacy init
authorTimo Sirainen <timo.sirainen@open-xchange.com>
Tue, 26 Nov 2024 13:30:51 +0000 (15:30 +0200)
committerAki Tuomi <aki.tuomi@open-xchange.com>
Fri, 17 Jan 2025 08:40:01 +0000 (10:40 +0200)
src/lib-dict/dict-fail.c
src/lib-dict/dict-file.c
src/lib-dict/dict-redis.c

index a97871cf0945616479a0eb86338a4a65cfaa5742..eca969ff23bfee60d62fce1ca984988d7656bc0d 100644 (file)
@@ -23,16 +23,6 @@ dict_fail_init(const struct dict *dict_driver ATTR_UNUSED,
        return -1;
 }
 
-static int
-dict_fail_init_legacy(struct dict *dict_driver ATTR_UNUSED,
-                     const char *uri ATTR_UNUSED,
-                     const struct dict_legacy_settings *set ATTR_UNUSED,
-                     struct dict **dict_r ATTR_UNUSED, const char **error_r)
-{
-       *error_r = "Unsupported operation (dict does not support this feature)";
-       return -1;
-}
-
 static void dict_fail_deinit(struct dict *dict ATTR_UNUSED)
 {
 }
@@ -126,7 +116,6 @@ struct dict dict_driver_fail = {
        .name = "fail",
        .v = {
                .init = dict_fail_init,
-               .init_legacy = dict_fail_init_legacy,
                .deinit = dict_fail_deinit,
                .wait = dict_fail_wait,
                .lookup = dict_fail_lookup,
index aada5ffa111e83f72dac21eaf789b544d35ac174..59b751c88a877d411b47b18ca65b49b26d74a459 100644 (file)
@@ -106,13 +106,6 @@ file_dict_ensure_path_home_dir(struct file_dict *dict, const char *home_dir,
        return 0;
 }
 
-static void file_dict_init_common(struct file_dict *dict)
-{
-       dict->hash_pool = pool_alloconly_create("file dict", 1024);
-       hash_table_create(&dict->hash, dict->hash_pool, 0, str_hash, strcmp);
-       dict->fd = -1;
-}
-
 static int
 file_dict_init(const struct dict *dict_driver, struct event *event,
               struct dict **dict_r, const char **error_r)
@@ -132,45 +125,10 @@ file_dict_init(const struct dict *dict_driver, struct event *event,
        settings_free(set);
 
        dict->dict = *dict_driver;
-       file_dict_init_common(dict);
-       *dict_r = &dict->dict;
-       return 0;
-}
-
-static int
-file_dict_init_legacy(struct dict *driver, const char *uri,
-                     const struct dict_legacy_settings *set ATTR_UNUSED,
-                     struct dict **dict_r, const char **error_r)
-{
-       struct file_dict *dict;
-       const char *p, *path;
-
-       dict = i_new(struct file_dict, 1);
-       dict->lock_method = FILE_LOCK_METHOD_DOTLOCK;
-
-       p = strchr(uri, ':');
-       if (p == NULL) {
-               /* no parameters */
-               path = uri;
-       } else {
-               path = t_strdup_until(uri, p++);
-               if (strcmp(p, "lock=fcntl") == 0)
-                       dict->lock_method = FILE_LOCK_METHOD_FCNTL;
-               else if (strcmp(p, "lock=flock") == 0)
-                       dict->lock_method = FILE_LOCK_METHOD_FLOCK;
-               else {
-                       *error_r = t_strdup_printf("Invalid parameter: %s", p+1);
-                       i_free(dict);
-                       return -1;
-               }
-       }
-
-       /* keep the path for now, later in dict operations check if home_dir
-          should be prepended. */
-       dict->path = i_strdup(path);
+       dict->hash_pool = pool_alloconly_create("file dict", 1024);
+       hash_table_create(&dict->hash, dict->hash_pool, 0, str_hash, strcmp);
+       dict->fd = -1;
 
-       dict->dict = *driver;
-       file_dict_init_common(dict);
        *dict_r = &dict->dict;
        return 0;
 }
@@ -760,7 +718,6 @@ struct dict dict_driver_file = {
        .name = "file",
        .v = {
                .init = file_dict_init,
-               .init_legacy = file_dict_init_legacy,
                .deinit = file_dict_deinit,
                .lookup = file_dict_lookup,
                .iterate_init = file_dict_iterate_init,
index f2c623e994ff54c99079f393a04191b1b548d06a..3b6bc2131b7ba0ffd2e1dae9a1e0f5734e8acda7 100644 (file)
@@ -430,10 +430,16 @@ static bool redis_settings_check(void *_set, pool_t pool ATTR_UNUSED,
        return TRUE;
 }
 
-static struct dict *
-redis_dict_init_common(const struct dict *dict_driver, struct event *event,
-                      struct dict_redis_settings *set)
+static int
+redis_dict_init(const struct dict *dict_driver, struct event *event,
+               struct dict **dict_r, const char **error_r)
 {
+       struct dict_redis_settings *set;
+
+       if (settings_get(event, &redis_setting_parser_info, 0,
+                        &set, error_r) < 0)
+               return -1;
+
        if (redis_connections == NULL) {
                redis_connections =
                        connection_list_init(&redis_conn_set,
@@ -460,89 +466,7 @@ redis_dict_init_common(const struct dict *dict_driver, struct event *event,
        i_array_init(&dict->input_states, 4);
        i_array_init(&dict->replies, 4);
 
-       return &dict->dict;
-}
-
-static int
-redis_dict_init(const struct dict *dict_driver, struct event *event,
-               struct dict **dict_r, const char **error_r)
-{
-       struct dict_redis_settings *set;
-
-       if (settings_get(event, &redis_setting_parser_info, 0,
-                        &set, error_r) < 0)
-               return -1;
-       *dict_r = redis_dict_init_common(dict_driver, event, set);
-       return 0;
-}
-
-static int
-redis_dict_init_legacy(struct dict *dict_driver, const char *uri,
-                      const struct dict_legacy_settings *legacy_set,
-                      struct dict **dict_r, const char **error_r)
-{
-       pool_t pool = pool_alloconly_create("redis_settings", 128);
-       struct dict_redis_settings *set =
-               settings_defaults_dup(pool, &redis_setting_parser_info);
-       if (net_addr2ip(set->redis_host, &set->redis_ip) < 0)
-               i_unreached();
-
-       const char *const *args = t_strsplit(uri, ":");
-       const char *value;
-       int ret = 0;
-       for (; *args != NULL; args++) {
-               if (str_begins(*args, "path=", &value)) {
-                       set->redis_socket_path = p_strdup(pool, value);
-               } else if (str_begins(*args, "host=", &value)) {
-                       if (net_addr2ip(value, &set->redis_ip) < 0) {
-                               *error_r = t_strdup_printf("Invalid IP: %s",
-                                                          value);
-                               ret = -1;
-                       } else {
-                               set->redis_host = p_strdup(pool, value);
-                       }
-               } else if (str_begins(*args, "port=", &value)) {
-                       if (net_str2port(value, &set->redis_port) < 0) {
-                               *error_r = t_strdup_printf("Invalid port: %s",
-                                                          value);
-                               ret = -1;
-                       }
-               } else if (str_begins(*args, "prefix=", &value)) {
-                       set->redis_key_prefix = p_strdup(pool, value);
-               } else if (str_begins(*args, "db=", &value)) {
-                       if (str_to_uint(value, &set->redis_db_id) < 0) {
-                               *error_r = t_strdup_printf(
-                                       "Invalid db number: %s", value);
-                               ret = -1;
-                       }
-               } else if (str_begins(*args, "expire_secs=", &value)) {
-                       if (str_to_uint(value, &set->redis_expire) < 0 ||
-                           set->redis_expire == 0) {
-                               *error_r = t_strdup_printf(
-                                       "Invalid expire_secs: %s", value);
-                               ret = -1;
-                       }
-               } else if (str_begins(*args, "timeout_msecs=", &value)) {
-                       if (str_to_uint(value, &set->redis_request_timeout) < 0) {
-                               *error_r = t_strdup_printf(
-                                       "Invalid timeout_msecs: %s", value);
-                               ret = -1;
-                       }
-               } else if (str_begins(*args, "password=", &value)) {
-                       set->redis_password = p_strdup(pool, value);
-               } else {
-                       *error_r = t_strdup_printf("Unknown parameter: %s",
-                                                  *args);
-                       ret = -1;
-               }
-       }
-       if (ret < 0) {
-               pool_unref(&pool);
-               return -1;
-       }
-
-       *dict_r = redis_dict_init_common(dict_driver, legacy_set->event_parent,
-                                        set);
+       *dict_r = &dict->dict;
        return 0;
 }
 
@@ -933,7 +857,6 @@ struct dict dict_driver_redis = {
        .flags = DICT_DRIVER_FLAG_SUPPORT_EXPIRE_SECS,
        .v = {
                .init = redis_dict_init,
-               .init_legacy = redis_dict_init_legacy,
                .deinit = redis_dict_deinit,
                .wait = redis_dict_wait,
                .lookup = redis_dict_lookup,