Avoid referring to wrong or even non-existent commands:

* When calling xtables_restore_main(), pass the actual program name
  taken from argv[0].
* Use 'prog_name' in unknown parameter and help output instead of
  'xtables-restore' which probably doesn't exist.
* While being at it, fix false whitespace in help text.

Signed-off-by: Phil Sutter <[email protected]>
---
 iptables/xtables-restore.c | 13 +++++++------
 1 file changed, 7 insertions(+), 6 deletions(-)

diff --git a/iptables/xtables-restore.c b/iptables/xtables-restore.c
index 86f6a3af971f0..2ef42fabc6f45 100644
--- a/iptables/xtables-restore.c
+++ b/iptables/xtables-restore.c
@@ -7,6 +7,7 @@
 #include "config.h"
 #include <getopt.h>
 #include <errno.h>
+#include <libgen.h>
 #include <stdbool.h>
 #include <string.h>
 #include <stdio.h>
@@ -51,7 +52,7 @@ static void print_usage(const char *name, const char *version)
                        "          [ --help ]\n"
                        "          [ --noflush ]\n"
                        "          [ --table=<TABLE> ]\n"
-                       "          [ --modprobe=<command> ]\n"
+                       "          [ --modprobe=<command> ]\n"
                        "          [ --ipv4 ]\n"
                        "          [ --ipv6 ]\n", name);
 }
@@ -361,8 +362,7 @@ xtables_restore_main(int family, const char *progname, int 
argc, char *argv[])
                                p.testing = 1;
                                break;
                        case 'h':
-                               print_usage("xtables-restore",
-                                           PACKAGE_VERSION);
+                               print_usage(prog_name, PACKAGE_VERSION);
                                exit(0);
                        case 'n':
                                h.noflush = 1;
@@ -387,7 +387,8 @@ xtables_restore_main(int family, const char *progname, int 
argc, char *argv[])
                                break;
                        default:
                                fprintf(stderr,
-                                       "Try `xtables-restore -h' for more 
information.\n");
+                                       "Try `%s -h' for more information.\n",
+                                       prog_name);
                                exit(1);
                }
        }
@@ -443,13 +444,13 @@ xtables_restore_main(int family, const char *progname, 
int argc, char *argv[])
 
 int xtables_ip4_restore_main(int argc, char *argv[])
 {
-       return xtables_restore_main(NFPROTO_IPV4, "iptables-restore",
+       return xtables_restore_main(NFPROTO_IPV4, basename(*argv),
                                    argc, argv);
 }
 
 int xtables_ip6_restore_main(int argc, char *argv[])
 {
-       return xtables_restore_main(NFPROTO_IPV6, "ip6tables-restore",
+       return xtables_restore_main(NFPROTO_IPV6, basename(*argv),
                                    argc, argv);
 }
 
-- 
2.21.0

Reply via email to