fixed manager plugin loading

manager uses strongswan.conf to read its configuration
This commit is contained in:
Martin Willi
2008-03-28 12:41:05 +00:00
parent 35b6e2301f
commit 892fb43b12
2 changed files with 24 additions and 18 deletions
+2 -1
View File
@@ -11,7 +11,8 @@ controller/gateway_controller.c controller/gateway_controller.h
manager_fcgi_LDADD = $(top_builddir)/src/libfast/libfast.la ${xml_LIBS} manager_fcgi_LDADD = $(top_builddir)/src/libfast/libfast.la ${xml_LIBS}
INCLUDES = -I$(top_srcdir)/src/libstrongswan -I$(top_srcdir)/src/libfast ${xml_CFLAGS} INCLUDES = -I$(top_srcdir)/src/libstrongswan -I$(top_srcdir)/src/libfast ${xml_CFLAGS}
AM_CFLAGS = -rdynamic -DIPSECDIR=\"${ipsecdir}\" -DIPSEC_PIDDIR=\"${piddir}\" AM_CFLAGS = -rdynamic -DIPSECDIR=\"${ipsecdir}\" -DIPSEC_PIDDIR=\"${piddir}\" \
-DIPSEC_PLUGINDIR=\"${plugindir}\"
ipsec_DATA = manager.db ipsec_DATA = manager.db
+22 -17
View File
@@ -16,6 +16,7 @@
*/ */
#include <dispatcher.h> #include <dispatcher.h>
#include <debug.h>
#include <stdio.h> #include <stdio.h>
#include "manager.h" #include "manager.h"
@@ -26,32 +27,36 @@
#include "controller/control_controller.h" #include "controller/control_controller.h"
#include "controller/config_controller.h" #include "controller/config_controller.h"
#define DBFILE IPSECDIR "/manager.db"
#define SESSION_TIMEOUT 900
#define THREADS 10
int main (int arc, char *argv[]) int main (int arc, char *argv[])
{ {
dispatcher_t *dispatcher; dispatcher_t *dispatcher;
storage_t *storage; storage_t *storage;
char *socket = NULL; char *socket;
bool debug = FALSE; char *database;
bool debug;
int threads, timeout;
#ifdef FCGI_SOCKET library_init(IPSECDIR "/strongswan.conf");
socket = FCGI_SOCKET; lib->plugins->load(lib->plugins, IPSEC_PLUGINDIR, "libstrongswan-");
debug = TRUE;
#endif /* FCGI_SOCKET */
library_init(IPSECDIR "/manager.conf"); socket = lib->settings->get_str(lib->settings, "manager.socket", NULL);
debug = lib->settings->get_bool(lib->settings, "manager.debug", FALSE);
storage = storage_create("sqlite://"DBFILE); timeout = lib->settings->get_int(lib->settings, "manager.timeout", 900);
if (storage == NULL) threads = lib->settings->get_int(lib->settings, "manager.threads", 10);
database = lib->settings->get_str(lib->settings, "manager.database", NULL);
if (!database)
{ {
fprintf(stderr, "opening database '%s' failed.\n", DBFILE); DBG1("database URI undefined, set manager.database in strongswan.conf");
return 1; return 1;
} }
dispatcher = dispatcher_create(socket, debug, SESSION_TIMEOUT, storage = storage_create(database);
if (storage == NULL)
{
return 1;
}
dispatcher = dispatcher_create(socket, debug, timeout,
(context_constructor_t)manager_create, storage); (context_constructor_t)manager_create, storage);
dispatcher->add_controller(dispatcher, ikesa_controller_create, NULL); dispatcher->add_controller(dispatcher, ikesa_controller_create, NULL);
dispatcher->add_controller(dispatcher, gateway_controller_create, NULL); dispatcher->add_controller(dispatcher, gateway_controller_create, NULL);
@@ -59,7 +64,7 @@ int main (int arc, char *argv[])
dispatcher->add_controller(dispatcher, control_controller_create, NULL); dispatcher->add_controller(dispatcher, control_controller_create, NULL);
dispatcher->add_controller(dispatcher, config_controller_create, NULL); dispatcher->add_controller(dispatcher, config_controller_create, NULL);
dispatcher->run(dispatcher, THREADS); dispatcher->run(dispatcher, threads);
dispatcher->waitsignal(dispatcher); dispatcher->waitsignal(dispatcher);