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;
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) {
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;
}