Skip to content
Snippets Groups Projects
Commit 06edd2fc authored by Ondřej Surý's avatar Ondřej Surý
Browse files

Refactor main() to use goto exit; and set return code to 0 on proper --help

Change-Id: Ib10e0b882757c1fa3981dea20f29bf7179e4a2a5
parent 7d44389e
No related branches found
No related tags found
No related merge requests found
......@@ -402,7 +402,7 @@ static int tsig_parse_file(knot_tsig_key_t *k, const char *f)
int main(int argc, char **argv)
{
/* Parse command line arguments */
int c = 0, li = 0;
int c = 0, li = 0, rc = 0;
unsigned flags = F_NULL;
char *config_fn = NULL;
char *default_config = conf_find_default();
......@@ -478,30 +478,26 @@ int main(int argc, char **argv)
config_fn = strdup(optarg);
break;
case 'V':
rc = 0;
printf("%s, version %s\n", "Knot DNS", PACKAGE_VERSION);
log_close();
free(config_fn);
free(default_config);
return 0;
goto exit;
case 'h':
case '?':
rc = 0;
help(argc, argv);
goto exit;
default:
rc = 1;
help(argc, argv);
log_close();
free(config_fn);
free(default_config);
return 1;
goto exit;
}
}
/* Check if there's at least one remaining non-option. */
if (argc - optind < 1) {
rc = 1;
help(argc, argv);
knot_tsig_key_free(&r_key);
log_close();
free(config_fn);
free(default_config);
return 1;
goto exit;
}
/* Find requested command. */
......@@ -516,11 +512,8 @@ int main(int argc, char **argv)
/* Command not found. */
if (!cmd->name) {
log_server_error("Invalid command: '%s'\n", argv[optind]);
knot_tsig_key_free(&r_key);
log_close();
free(config_fn);
free(default_config);
return 1;
rc = 1;
goto exit;
}
/* Open config, allow if not exists. */
......@@ -566,8 +559,9 @@ int main(int argc, char **argv)
}
/* Execute command. */
int rc = cmd->cb(argc - optind - 1, argv + optind + 1, flags);
rc = cmd->cb(argc - optind - 1, argv + optind + 1, flags);
exit:
/* Finish */
knot_tsig_key_free(&r_key);
log_close();
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment