From 046bd53ff9817a02df89295178e9e5713a8c2bcc Mon Sep 17 00:00:00 2001 From: gandalf Date: Wed, 26 May 2004 15:41:54 +0000 Subject: When compiled static, don't show help-messages for all matches and targets, only show help for specified ones. --- iptables.c | 24 +++++++++++++----------- 1 file changed, 13 insertions(+), 11 deletions(-) (limited to 'iptables.c') diff --git a/iptables.c b/iptables.c index bec912f..648f988 100644 --- a/iptables.c +++ b/iptables.c @@ -346,9 +346,9 @@ exit_tryhelp(int status) } void -exit_printhelp(void) +exit_printhelp(struct iptables_rule_match *matches) { - struct iptables_match *m = NULL; + struct iptables_rule_match *matchp = NULL; struct iptables_target *t = NULL; printf("%s v%s\n\n" @@ -413,14 +413,16 @@ exit_printhelp(void) /* Print out any special helps. A user might like to be able to add a --help to the commandline, and see expected - results. So we call help for all matches & targets */ - for (t=iptables_targets;t;t=t->next) { - printf("\n"); - t->help(); + results. So we call help for all specified matches & targets */ + for (t = iptables_targets; t ;t = t->next) { + if (t->used) { + printf("\n"); + t->help(); + } } - for (m=iptables_matches;m;m=m->next) { + for (matchp = matches; matchp; matchp = matchp->next) { printf("\n"); - m->help(); + matchp->match->help(); } exit(0); } @@ -1836,10 +1838,10 @@ int do_command(int argc, char *argv[], char **table, iptc_handle_t *handle) optarg = argv[optind]; /* iptables -p icmp -h */ - if (!iptables_matches && protocol) - find_match(protocol, TRY_LOAD, NULL); + if (!matches && protocol) + find_match(protocol, TRY_LOAD, &matches); - exit_printhelp(); + exit_printhelp(matches); /* * Option selection -- cgit v1.2.3