From 9cd3adbed2fd8cdb6366293f3799573b811be89b Mon Sep 17 00:00:00 2001 From: Dan Williams Date: Mon, 10 Apr 2017 12:31:56 -0500 Subject: iptables-restore/ip6tables-restore: add --version/-V argument Prints program version just like iptables/ip6tables. Signed-off-by: Dan Williams Signed-off-by: Pablo Neira Ayuso --- iptables/ip6tables-restore.c | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) (limited to 'iptables/ip6tables-restore.c') diff --git a/iptables/ip6tables-restore.c b/iptables/ip6tables-restore.c index 30a4ade7..419a2b0e 100644 --- a/iptables/ip6tables-restore.c +++ b/iptables/ip6tables-restore.c @@ -36,6 +36,7 @@ static struct timeval wait_interval = { static const struct option options[] = { {.name = "counters", .has_arg = 0, .val = 'c'}, {.name = "verbose", .has_arg = 0, .val = 'v'}, + {.name = "version", .has_arg = 0, .val = 'V'}, {.name = "test", .has_arg = 0, .val = 't'}, {.name = "help", .has_arg = 0, .val = 'h'}, {.name = "noflush", .has_arg = 0, .val = 'n'}, @@ -48,11 +49,15 @@ static const struct option options[] = { static void print_usage(const char *name, const char *version) __attribute__((noreturn)); +#define prog_name ip6tables_globals.program_name +#define prog_vers ip6tables_globals.program_version + static void print_usage(const char *name, const char *version) { - fprintf(stderr, "Usage: %s [-c] [-v] [-t] [-h] [-n] [-w secs] [-W usecs] [-T table] [-M command]\n" + fprintf(stderr, "Usage: %s [-c] [-v] [-V] [-t] [-h] [-n] [-w secs] [-W usecs] [-T table] [-M command]\n" " [ --counters ]\n" " [ --verbose ]\n" + " [ --version]\n" " [ --test ]\n" " [ --help ]\n" " [ --noflush ]\n" @@ -78,8 +83,7 @@ static struct xtc_handle *create_handle(const char *tablename) if (!handle) { xtables_error(PARAMETER_PROBLEM, "%s: unable to initialize " - "table '%s'\n", ip6tables_globals.program_name, - tablename); + "table '%s'\n", prog_name, tablename); exit(1); } return handle; @@ -213,7 +217,7 @@ int ip6tables_restore_main(int argc, char *argv[]) init_extensions6(); #endif - while ((c = getopt_long(argc, argv, "bcvthnwWM:T:", options, NULL)) != -1) { + while ((c = getopt_long(argc, argv, "bcvVthnwWM:T:", options, NULL)) != -1) { switch (c) { case 'b': fprintf(stderr, "-b/--binary option is not implemented\n"); @@ -224,6 +228,9 @@ int ip6tables_restore_main(int argc, char *argv[]) case 'v': verbose = 1; break; + case 'V': + printf("%s v%s\n", prog_name, prog_vers); + exit(0); case 't': testing = 1; break; -- cgit v1.2.3