DatabaseGlue: look up the database plugin
No more hard-coded "simple" plugin.
This commit is contained in:
@@ -19,6 +19,7 @@
|
|||||||
|
|
||||||
#include "config.h"
|
#include "config.h"
|
||||||
#include "DatabaseGlue.hxx"
|
#include "DatabaseGlue.hxx"
|
||||||
|
#include "DatabaseRegistry.hxx"
|
||||||
|
|
||||||
extern "C" {
|
extern "C" {
|
||||||
#include "database.h"
|
#include "database.h"
|
||||||
@@ -56,7 +57,16 @@ db_init(const struct config_param *param, GError **error_r)
|
|||||||
assert(db == NULL);
|
assert(db == NULL);
|
||||||
assert(!db_is_open);
|
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;
|
return db != NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user