summaryrefslogtreecommitdiffstats
path: root/src/main.c
diff options
context:
space:
mode:
authorPhil Sutter <phil@nwl.cc>2017-11-13 15:08:16 +0100
committerPablo Neira Ayuso <pablo@netfilter.org>2017-11-16 14:35:35 +0100
commit9200bfc50653612033d58774f422fc20150d3301 (patch)
tree04b81823a43a38cf67fe10b7dd836cbbef85f567 /src/main.c
parent657fdefc7d5c70056b8738da214d3d78f421b19c (diff)
libnftables: Unexport enum nftables_exit_codes
Apart from SUCCESS/FAILURE, these codes were not used by library functions simply because NOMEM and NONL conditions lead to calling exit() instead of propagating the error condition back up the call stack. Instead, make nft_run_cmd_from_*() return either 0 or -1 on error. Usually errno will then contain more details about what happened and/or there are messages in erec. Calls to exit()/return in main() are adjusted to stay compatible. Signed-off-by: Phil Sutter <phil@nwl.cc> Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
Diffstat (limited to 'src/main.c')
-rw-r--r--src/main.c22
1 files changed, 11 insertions, 11 deletions
diff --git a/src/main.c b/src/main.c
index 529bedff..ff7878c9 100644
--- a/src/main.c
+++ b/src/main.c
@@ -183,11 +183,11 @@ int main(int argc, char * const *argv)
switch (val) {
case OPT_HELP:
show_help(argv[0]);
- exit(NFT_EXIT_SUCCESS);
+ exit(EXIT_SUCCESS);
case OPT_VERSION:
printf("%s v%s (%s)\n",
PACKAGE_NAME, PACKAGE_VERSION, RELEASE_NAME);
- exit(NFT_EXIT_SUCCESS);
+ exit(EXIT_SUCCESS);
case OPT_CHECK:
nft_ctx_set_dry_run(nft, true);
break;
@@ -202,7 +202,7 @@ int main(int argc, char * const *argv)
fprintf(stderr,
"Failed to add include path '%s'\n",
optarg);
- exit(NFT_EXIT_FAILURE);
+ exit(EXIT_FAILURE);
}
break;
case OPT_NUMERIC:
@@ -211,7 +211,7 @@ int main(int argc, char * const *argv)
fprintf(stderr, "Too many numeric options "
"used, max. %u\n",
NFT_NUMERIC_ALL);
- exit(NFT_EXIT_FAILURE);
+ exit(EXIT_FAILURE);
}
nft_ctx_output_set_numeric(nft, numeric + 1);
break;
@@ -241,7 +241,7 @@ int main(int argc, char * const *argv)
if (i == array_size(debug_param)) {
fprintf(stderr, "invalid debug parameter `%s'\n",
optarg);
- exit(NFT_EXIT_FAILURE);
+ exit(EXIT_FAILURE);
}
if (end == NULL)
@@ -257,7 +257,7 @@ int main(int argc, char * const *argv)
nft_ctx_output_set_echo(nft, true);
break;
case OPT_INVALID:
- exit(NFT_EXIT_FAILURE);
+ exit(EXIT_FAILURE);
}
}
@@ -272,19 +272,19 @@ int main(int argc, char * const *argv)
strcat(buf, " ");
}
strcat(buf, "\n");
- rc = nft_run_cmd_from_buffer(nft, buf, len + 2);
+ rc = !!nft_run_cmd_from_buffer(nft, buf, len + 2);
} else if (filename != NULL) {
- rc = nft_run_cmd_from_filename(nft, filename);
+ rc = !!nft_run_cmd_from_filename(nft, filename);
} else if (interactive) {
if (cli_init(nft) < 0) {
fprintf(stderr, "%s: interactive CLI not supported in this build\n",
argv[0]);
- exit(NFT_EXIT_FAILURE);
+ exit(EXIT_FAILURE);
}
- return 0;
+ return EXIT_SUCCESS;
} else {
fprintf(stderr, "%s: no command specified\n", argv[0]);
- exit(NFT_EXIT_FAILURE);
+ exit(EXIT_FAILURE);
}
xfree(buf);