aboutsummaryrefslogtreecommitdiffstats
path: root/src/charon-cmd/charon-cmd.c
diff options
context:
space:
mode:
authorMartin Willi <martin@revosec.ch>2013-03-26 17:38:02 +0100
committerMartin Willi <martin@revosec.ch>2013-05-06 15:28:27 +0200
commit7bcd96e43dcde713e7298b45cfbedb13290a278f (patch)
tree237666c0b9ce2407e6152f239df916a7ae09bbeb /src/charon-cmd/charon-cmd.c
parent9dfd9275f029e9ccd7e25ded8f281e9987b9d982 (diff)
downloadstrongswan-7bcd96e43dcde713e7298b45cfbedb13290a278f.tar.bz2
strongswan-7bcd96e43dcde713e7298b45cfbedb13290a278f.tar.xz
charon-cmd: pass arguments to all handlers, even if already handled
Diffstat (limited to 'src/charon-cmd/charon-cmd.c')
-rw-r--r--src/charon-cmd/charon-cmd.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/src/charon-cmd/charon-cmd.c b/src/charon-cmd/charon-cmd.c
index acfdcbae8..d0fc4da07 100644
--- a/src/charon-cmd/charon-cmd.c
+++ b/src/charon-cmd/charon-cmd.c
@@ -254,6 +254,8 @@ static void handle_arguments(int argc, char *argv[])
}
while (TRUE)
{
+ bool handled = FALSE;
+
opt = getopt_long(argc, argv, "", long_opts, NULL);
switch (opt)
{
@@ -266,8 +268,9 @@ static void handle_arguments(int argc, char *argv[])
printf("%s, strongSwan %s\n", "charon-cmd", VERSION);
exit(0);
default:
- if (conn->handle(conn, opt, optarg) ||
- creds->handle(creds, opt, optarg))
+ handled |= conn->handle(conn, opt, optarg);
+ handled |= creds->handle(creds, opt, optarg);
+ if (handled)
{
continue;
}