summaryrefslogtreecommitdiffstats
path: root/xshared.c
diff options
context:
space:
mode:
authorJan Engelhardt <jengelh@medozas.de>2009-06-12 20:48:52 +0200
committerJan Engelhardt <jengelh@medozas.de>2009-06-26 21:13:10 +0200
commitf89c1716a7743ca6e2e6164d3b64c15b2e285e1e (patch)
treecaaa6a6d656085690a71b791108c6a78365fe8dd /xshared.c
parent92edcb0cf517ddb7976e396eabc7a79f8a1016ba (diff)
iptables: allow for help-less extensions
This is for extensions that do not take any options, and which subsequently do not offer any help text either. Signed-off-by: Jan Engelhardt <jengelh@medozas.de>
Diffstat (limited to 'xshared.c')
-rw-r--r--xshared.c31
1 files changed, 31 insertions, 0 deletions
diff --git a/xshared.c b/xshared.c
new file mode 100644
index 00000000..21b5b2cb
--- /dev/null
+++ b/xshared.c
@@ -0,0 +1,31 @@
+#include <stdio.h>
+#include <xtables.h>
+#include "xshared.h"
+
+/*
+ * 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
+ * specified matches and targets.
+ */
+void print_extension_helps(const struct xtables_target *t,
+ const struct xtables_rule_match *m)
+{
+ for (; t != NULL; t = t->next) {
+ if (t->used) {
+ printf("\n");
+ if (t->help == NULL)
+ printf("%s does not take any options\n",
+ t->name);
+ else
+ t->help();
+ }
+ }
+ for (; m != NULL; m = m->next) {
+ printf("\n");
+ if (m->match->help == NULL)
+ printf("%s does not take any options\n",
+ m->match->name);
+ else
+ m->match->help();
+ }
+}