From 8fb4edc4ff59fca5dba590f567ffa559bf28522e Mon Sep 17 00:00:00 2001 From: Martin Willi Date: Tue, 1 Sep 2009 16:20:45 +0200 Subject: handle plugin loading failures --- src/charon/plugins/sql/pool.c | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) (limited to 'src/charon/plugins/sql') diff --git a/src/charon/plugins/sql/pool.c b/src/charon/plugins/sql/pool.c index 6c0c1f5a6..ef119c966 100644 --- a/src/charon/plugins/sql/pool.c +++ b/src/charon/plugins/sql/pool.c @@ -634,20 +634,23 @@ int main(int argc, char *argv[]) fprintf(stderr, "integrity check of pool failed\n"); exit(SS_RC_DAEMON_INTEGRITY); } - lib->plugins->load(lib->plugins, IPSEC_PLUGINDIR, - lib->settings->get_str(lib->settings, "pool.load", PLUGINS)); + if (!lib->plugins->load(lib->plugins, IPSEC_PLUGINDIR, + lib->settings->get_str(lib->settings, "pool.load", PLUGINS))) + { + exit(SS_RC_INITIALIZATION_FAILED); + } uri = lib->settings->get_str(lib->settings, "charon.plugins.sql.database", NULL); if (!uri) { fprintf(stderr, "database URI charon.plugins.sql.database not set.\n"); - exit(-1); + exit(SS_RC_INITIALIZATION_FAILED); } db = lib->db->create(lib->db, uri); if (!db) { fprintf(stderr, "opening database failed.\n"); - exit(-1); + exit(SS_RC_INITIALIZATION_FAILED); } atexit(cleanup); @@ -677,7 +680,7 @@ int main(int argc, char *argv[]) switch (c) { case EOF: - break; + break; case 'h': break; case 'w': -- cgit v1.2.3