summaryrefslogtreecommitdiffstats
path: root/extensions
diff options
context:
space:
mode:
authorFlorian Westphal <fw@strlen.de>2018-11-07 13:57:16 +0100
committerFlorian Westphal <fw@strlen.de>2018-11-12 14:53:24 +0100
commitd9a518ee22cf90ddeb56a9df687aef953fda0fa0 (patch)
tree347e814c29aee4e36fc0943c646ccfd7abee8f87 /extensions
parent5a52e6a9cffd8e2a5d16af0fa08902ca8332190b (diff)
arptables: use ->save for arptables-save, like xtables
arptables-save will show -A OUTPUT --h-length 6 --h-type 1 -j MARK --set-xmark 0x1/0xffffffff as --h-length 6 --h-type Ethernet -j MARK MARK set 0x1 Because it uses ->print() instead of ->save(). Switch it to use ->save, we can then also drop special handling of CLASSIFY target. Signed-off-by: Florian Westphal <fw@strlen.de>
Diffstat (limited to 'extensions')
-rw-r--r--extensions/libarpt_mangle.c6
-rw-r--r--extensions/libxt_CLASSIFY.c47
2 files changed, 19 insertions, 34 deletions
diff --git a/extensions/libarpt_mangle.c b/extensions/libarpt_mangle.c
index 547f5b61..2fea6185 100644
--- a/extensions/libarpt_mangle.c
+++ b/extensions/libarpt_mangle.c
@@ -175,6 +175,11 @@ arpmangle_print(const void *ip, const struct xt_entry_target *target,
}
}
+static void arpmangle_save(const void *ip, const struct xt_entry_target *target)
+{
+ arpmangle_print(ip, target, 0);
+}
+
static struct xtables_target arpmangle_target = {
.name = "mangle",
.revision = 0,
@@ -187,6 +192,7 @@ static struct xtables_target arpmangle_target = {
.parse = arpmangle_parse,
.final_check = arpmangle_final_check,
.print = arpmangle_print,
+ .save = arpmangle_save,
.extra_opts = arpmangle_opts,
};
diff --git a/extensions/libxt_CLASSIFY.c b/extensions/libxt_CLASSIFY.c
index ba88f758..f90082dc 100644
--- a/extensions/libxt_CLASSIFY.c
+++ b/extensions/libxt_CLASSIFY.c
@@ -73,13 +73,6 @@ CLASSIFY_save(const void *ip, const struct xt_entry_target *target)
TC_H_MAJ(clinfo->priority)>>16, TC_H_MIN(clinfo->priority));
}
-static void
-arpCLASSIFY_print(const void *ip, const struct xt_entry_target *target,
- int numeric)
-{
- CLASSIFY_save(ip, target);
-}
-
static int CLASSIFY_xlate(struct xt_xlate *xl,
const struct xt_xlate_tg_params *params)
{
@@ -105,35 +98,21 @@ static int CLASSIFY_xlate(struct xt_xlate *xl,
return 1;
}
-static struct xtables_target classify_target[] = {
- {
- .family = NFPROTO_UNSPEC,
- .name = "CLASSIFY",
- .version = XTABLES_VERSION,
- .size = XT_ALIGN(sizeof(struct xt_classify_target_info)),
- .userspacesize = XT_ALIGN(sizeof(struct xt_classify_target_info)),
- .help = CLASSIFY_help,
- .print = CLASSIFY_print,
- .save = CLASSIFY_save,
- .x6_parse = CLASSIFY_parse,
- .x6_options = CLASSIFY_opts,
- .xlate = CLASSIFY_xlate,
- },
- {
- .family = NFPROTO_ARP,
- .name = "CLASSIFY",
- .version = XTABLES_VERSION,
- .size = XT_ALIGN(sizeof(struct xt_classify_target_info)),
- .userspacesize = XT_ALIGN(sizeof(struct xt_classify_target_info)),
- .help = CLASSIFY_help,
- .print = arpCLASSIFY_print,
- .x6_parse = CLASSIFY_parse,
- .x6_options = CLASSIFY_opts,
- .xlate = CLASSIFY_xlate,
- },
+static struct xtables_target classify_target = {
+ .family = NFPROTO_UNSPEC,
+ .name = "CLASSIFY",
+ .version = XTABLES_VERSION,
+ .size = XT_ALIGN(sizeof(struct xt_classify_target_info)),
+ .userspacesize = XT_ALIGN(sizeof(struct xt_classify_target_info)),
+ .help = CLASSIFY_help,
+ .print = CLASSIFY_print,
+ .save = CLASSIFY_save,
+ .x6_parse = CLASSIFY_parse,
+ .x6_options = CLASSIFY_opts,
+ .xlate = CLASSIFY_xlate,
};
void _init(void)
{
- xtables_register_targets(classify_target, ARRAY_SIZE(classify_target));
+ xtables_register_target(&classify_target);
}