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

index ef4fc1eccc9ef1088ac6722881cfb64c5228f971..3bf54adbe143019e9a38f38ec796bfc76e921282 100644 (file)
@@ -162,8 +162,8 @@ driver_sqlite_db_cache_find(const struct sqlite_settings *set)
 }
 
 static struct sqlite_db *
-driver_sqlite_init_common(struct event *event,
-                         const struct sqlite_settings *set)
+driver_sqlite_init_from_set(struct event *event,
+                           const struct sqlite_settings *set)
 {
        struct sqlite_db *db;
 
@@ -192,7 +192,7 @@ driver_sqlite_init_v(struct event *event, struct sql_db **db_r,
        if (db != NULL)
                settings_free(set);
        else {
-               db = driver_sqlite_init_common(event, set);
+               db = driver_sqlite_init_from_set(event, set);
                sql_init_common(&db->api);
                array_push_back(&sqlite_db_cache, &db);
                /* Add an extra reference to the db, so it won't be freed while
@@ -204,74 +204,6 @@ driver_sqlite_init_v(struct event *event, struct sql_db **db_r,
        return 0;
 }
 
-static int
-driver_sqlite_parse_connect_string(pool_t pool,
-                                  const char *connect_string,
-                                  const struct sqlite_settings **set_r,
-                                  const char **error_r)
-{
-       const char *const *params = t_strsplit_spaces(connect_string, " ");
-       const char *arg, *file = NULL;
-
-       if (str_array_length(params) < 1) {
-               *error_r = "Empty connect_string";
-               return -1;
-       }
-
-       struct sqlite_settings *set =
-               settings_defaults_dup(pool, &sqlite_setting_parser_info);
-
-       for (; *params != NULL; params++) {
-               if (str_begins(*params, "journal_mode=", &arg)) {
-                       if (strcmp(arg, "delete") == 0)
-                               set->parsed_journal_use_wal = FALSE;
-                       else if (strcmp(arg, "wal") == 0)
-                               set->parsed_journal_use_wal = TRUE;
-                       else {
-                               *error_r = t_strdup_printf("journal_mode: Unsupported mode '%s', "
-                                                          "use either 'delete' or 'wal'", arg);
-                               return -1;
-                       }
-               } else if (str_begins(*params, "readonly=", &arg)) {
-                        if (str_parse_get_bool(arg, &set->readonly, error_r) < 0) {
-                               *error_r = t_strdup_printf("readonly: %s", *error_r);
-                               return -1;
-                        }
-               } else if (strchr(*params, '=') != NULL) {
-                       *error_r = t_strdup_printf("Unsupported parameter '%s'", *params);
-                       return -1;
-               } else if (file == NULL) {
-                       file = *params;
-               } else {
-                       *error_r = "Multiple filenames provided";
-                       return -1;
-               }
-       }
-
-       set->path = p_strdup(pool, file);
-       *set_r = set;
-       return 0;
-}
-
-static int
-driver_sqlite_init_full_v(const struct sql_legacy_settings *legacy_set,
-                         struct sql_db **db_r, const char **error_r)
-{
-       const struct sqlite_settings *set;
-       pool_t pool = pool_alloconly_create("sqlite_settings", 128);
-
-       if (driver_sqlite_parse_connect_string(pool, legacy_set->connect_string,
-                                              &set, error_r) < 0) {
-               pool_unref(&pool);
-               return -1;
-       }
-
-       struct sqlite_db *db =
-               driver_sqlite_init_common(legacy_set->event_parent, set);
-       *db_r = &db->api;
-       return 0;
-}
-
 static void driver_sqlite_deinit_v(struct sql_db *_db)
 {
        struct sqlite_db *db = container_of(_db, struct sqlite_db, api);
@@ -742,7 +674,6 @@ const struct sql_db driver_sqlite_db = {
 
        .v = {
                .init = driver_sqlite_init_v,
-               .init_legacy_full = driver_sqlite_init_full_v,
                .deinit = driver_sqlite_deinit_v,
                .connect = driver_sqlite_connect,
                .disconnect = driver_sqlite_disconnect,