summaryrefslogtreecommitdiffstats
path: root/iptables/nft-arp.c
diff options
context:
space:
mode:
authorFlorian Westphal <fw@strlen.de>2018-11-05 13:38:08 +0100
committerFlorian Westphal <fw@strlen.de>2018-11-12 14:53:24 +0100
commit50c2397af9b6cf7ed6e34e9a8cb7b928cee9f1bd (patch)
treeb539ed55ec4dfd73939a1363471c35e5bdd01f07 /iptables/nft-arp.c
parentd9a518ee22cf90ddeb56a9df687aef953fda0fa0 (diff)
arptables-save: add -c option, like xtables-save
arptables classic doesn't have arptables-save, it only has a perl script that attempts to emulate iptables-save. It supports no options, and thus has no way to dump counters. Add -c option, like iptables to enable this. Signed-off-by: Florian Westphal <fw@strlen.de>
Diffstat (limited to 'iptables/nft-arp.c')
-rw-r--r--iptables/nft-arp.c17
1 files changed, 9 insertions, 8 deletions
diff --git a/iptables/nft-arp.c b/iptables/nft-arp.c
index 3d2ae3bf..f9352297 100644
--- a/iptables/nft-arp.c
+++ b/iptables/nft-arp.c
@@ -570,6 +570,14 @@ after_devdst:
}
}
+static void nft_arp_save_counters(const void *data)
+{
+ const struct iptables_command_state *cs = data;
+
+ printf("[%llu:%llu] ", (unsigned long long)cs->arp.counters.pcnt,
+ (unsigned long long)cs->arp.counters.bcnt);
+}
+
static void
nft_arp_save_rule(const void *data, unsigned int format)
{
@@ -587,13 +595,6 @@ nft_arp_save_rule(const void *data, unsigned int format)
cs->target->save(&cs->arp, cs->target->t);
}
- if (!(format & FMT_NOCOUNTS)) {
- printf(", pcnt=");
- xtables_print_num(cs->arp.counters.pcnt, format);
- printf("-- bcnt=");
- xtables_print_num(cs->arp.counters.bcnt, format);
- }
-
if (!(format & FMT_NONEWLINE))
fputc('\n', stdout);
}
@@ -692,7 +693,7 @@ struct nft_family_ops nft_family_ops_arp = {
.print_header = nft_arp_print_header,
.print_rule = nft_arp_print_rule,
.save_rule = nft_arp_save_rule,
- .save_counters = NULL,
+ .save_counters = nft_arp_save_counters,
.save_chain = nft_arp_save_chain,
.post_parse = NULL,
.rule_to_cs = nft_arp_rule_to_cs,