DatabaseGlue: look up the database plugin

No more hard-coded "simple" plugin.
This commit is contained in:
Max Kellermann
2012-08-08 08:46:16 +02:00
parent b46bb611b3
commit dc2fa246a9

View File

@@ -19,6 +19,7 @@
#include "config.h"
#include "DatabaseGlue.hxx"
#include "DatabaseRegistry.hxx"
extern "C" {
#include "database.h"
@@ -56,7 +57,16 @@ db_init(const struct config_param *param, GError **error_r)
assert(db == NULL);
assert(!db_is_open);
db = simple_db_plugin.create(param, error_r);
const char *plugin_name =
config_get_block_string(param, "plugin", "simple");
const DatabasePlugin *plugin = GetDatabasePluginByName(plugin_name);
if (plugin == NULL) {
g_set_error(error_r, db_quark(), 0,
"No such database plugin: %s", plugin_name);
return false;
}
db = plugin->create(param, error_r);
return db != NULL;
}