From: Vladimír Čunát Date: Tue, 30 Jan 2018 10:45:41 +0000 (+0100) Subject: main: fix exiting with --help etc. X-Git-Tag: v2.0.0~7^2 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=7b90e4f4003799fb585486cbb04e6cf95b007d8b;p=thirdparty%2Fknot-resolver.git main: fix exiting with --help etc. --- diff --git a/daemon/main.c b/daemon/main.c index d0bced441..046a19a27 100644 --- a/daemon/main.c +++ b/daemon/main.c @@ -475,7 +475,10 @@ static void args_init(struct args *args) args->quiet = false; } -int parse_args(int argc, char **argv, struct args *args) +/** Process arguments into struct args. + * @return >=0 if main() should be exited immediately. + */ +static int parse_args(int argc, char **argv, struct args *args) { /* Long options. */ int c = 0, li = 0; @@ -554,11 +557,11 @@ int parse_args(int argc, char **argv, struct args *args) help(argc, argv); return EXIT_FAILURE; } - } + } if (optind < argc) { args->rundir = argv[optind]; } - return EXIT_SUCCESS; + return -1; } static int bind_fds(struct network *net, fd_array_t *fd_set, bool tls) { @@ -595,7 +598,7 @@ int main(int argc, char **argv) int ret = 0; struct args args; args_init(&args); - if ((ret = parse_args(argc, argv, &args)) != EXIT_SUCCESS) { + if ((ret = parse_args(argc, argv, &args)) >= 0) { return ret; }