diff options
author | Pablo Neira Ayuso <pablo@netfilter.org> | 2013-03-09 01:01:11 +0100 |
---|---|---|
committer | Pablo Neira Ayuso <pablo@netfilter.org> | 2013-12-30 23:50:27 +0100 |
commit | 5231faea0fd5f5d4538a99d8234103a8297ff82f (patch) | |
tree | 91d53cb7150e64755b98c0b71193bfac906f6750 | |
parent | 45ce2daf44c11f53d208f607ccdd3d11192d0de5 (diff) |
xtables: fix missing xtables_exit_error definition
iptables_exit_error is defined in iptables/iptables.c, that
symbol cannot be used by iptables/xtables.c
Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
-rw-r--r-- | iptables/xtables.c | 24 |
1 files changed, 22 insertions, 2 deletions
diff --git a/iptables/xtables.c b/iptables/xtables.c index c0a6347a..abc2379d 100644 --- a/iptables/xtables.c +++ b/iptables/xtables.c @@ -114,13 +114,13 @@ static struct option original_opts[] = { {NULL}, }; -void iptables_exit_error(enum xtables_exittype status, const char *msg, ...) __attribute__((noreturn, format(printf,2,3))); +void xtables_exit_error(enum xtables_exittype status, const char *msg, ...) __attribute__((noreturn, format(printf,2,3))); struct xtables_globals xtables_globals = { .option_offset = 0, .program_version = IPTABLES_VERSION, .orig_opts = original_opts, - .exit_err = iptables_exit_error, + .exit_err = xtables_exit_error, .compat_rev = nft_compatible_revision, }; @@ -295,6 +295,26 @@ exit_printhelp(const struct xtables_rule_match *matches) exit(0); } +void +xtables_exit_error(enum xtables_exittype status, const char *msg, ...) +{ + va_list args; + + va_start(args, msg); + fprintf(stderr, "%s v%s: ", prog_name, prog_vers); + vfprintf(stderr, msg, args); + va_end(args); + fprintf(stderr, "\n"); + if (status == PARAMETER_PROBLEM) + exit_tryhelp(status); + if (status == VERSION_PROBLEM) + fprintf(stderr, + "Perhaps iptables or your kernel needs to be upgraded.\n"); + /* On error paths, make sure that we don't leak memory */ + xtables_free_opts(1); + exit(status); +} + static void generic_opt_check(int command, int options) { |