From 7d858a9d3cd89b9bd5d8542c9db5130a79269f6f Mon Sep 17 00:00:00 2001 From: Andreas Steffen Date: Sun, 24 May 2009 20:03:01 +0200 Subject: [PATCH] pluto uses optionsfrom from libstrongswan --- src/pluto/plutomain.c | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/src/pluto/plutomain.c b/src/pluto/plutomain.c index f7d854352..ebd020100 100644 --- a/src/pluto/plutomain.c +++ b/src/pluto/plutomain.c @@ -37,9 +37,11 @@ #endif /* CAPABILITIES */ #include + #include #include #include +#include #include #include @@ -221,6 +223,9 @@ bool pkcs11_proxy = FALSE; */ static const char *pkcs11_init_args = NULL; +/* options read by optionsfrom */ +options_t *options; + /** * Log loaded plugins */ @@ -255,7 +260,9 @@ int main(int argc, char **argv) int keep[] = { CAP_NET_ADMIN, CAP_NET_BIND_SERVICE }; #endif /* CAPABILITIES */ + /* initialize library and optionsfrom */ library_init(STRONGSWAN_CONF); + options = options_create(); /* handle arguments */ for (;;) @@ -356,8 +363,10 @@ int main(int argc, char **argv) break; /* not actually reached */ case '+': /* --optionsfrom */ - optionsfrom(optarg, &argc, &argv, optind, stderr); - /* does not return on error */ + if (!options->from(options, optarg, &argc, &argv, optind)) + { + exit_pluto(1); + } continue; case 'd': /* --nofork*/ @@ -734,6 +743,7 @@ void exit_pluto(int status) free_events(); /* free remaining events */ free_vendorid(); /* free all vendor id records */ delete_lock(); + options->destroy(options); library_deinit(); close_log(); exit(status);