Fixes a crash at sql_unref() caused by recent changes.
if (ret < 0)
i_fatal("sqlpool: %s", error);
- i_array_init(&conndb->module_contexts, 5);
+ sql_init_common(conndb);
conndb->state_change_callback = sqlpool_state_changed;
conndb->state_change_context = db;
extern ARRAY_TYPE(sql_drivers) sql_drivers;
extern struct sql_result sql_not_connected_result;
+void sql_init_common(struct sql_db *db);
struct sql_db *
driver_sqlpool_init(const char *connect_string, const struct sql_db *driver);
int driver_sqlpool_init_full(const struct sql_settings *set, const struct sql_db *driver,
if (ret < 0)
return -1;
- i_array_init(&db->module_contexts, 5);
+ sql_init_common(db);
+ *db_r = db;
+ return 0;
+}
+
+void sql_init_common(struct sql_db *db)
+{
db->refcount = 1;
+ i_array_init(&db->module_contexts, 5);
hash_table_create(&db->prepared_stmt_hash, default_pool, 0,
str_hash, strcmp);
- *db_r = db;
- return 0;
}
void sql_ref(struct sql_db *db)