sql_db_set_state(&db->api, SQL_DB_STATE_CONNECTING);
+ if (mysql_init(db->mysql) == NULL)
+ i_fatal("mysql_init() failed");
+
if (db->host == NULL) {
/* assume option_file overrides the host, or if not we'll just
connect to localhost */
}
}
-static void driver_mysql_disconnect(struct sql_db *_db ATTR_UNUSED)
+static void driver_mysql_disconnect(struct sql_db *_db)
{
+ struct mysql_db *db = (struct mysql_db *)_db;
+ mysql_close(db->mysql);
}
static int driver_mysql_parse_connect_string(struct mysql_db *db,
*error_r = "No hosts given in connect string";
return -1;
}
- db->mysql = mysql_init(NULL);
- if (db->mysql == NULL)
- i_fatal("mysql_init() failed");
+ db->mysql = p_new(db->pool, MYSQL, 1);
return 0;
}