From 50c2397af9b6cf7ed6e34e9a8cb7b928cee9f1bd Mon Sep 17 00:00:00 2001 From: Florian Westphal Date: Mon, 5 Nov 2018 13:38:08 +0100 Subject: 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 --- iptables/nft-arp.c | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) (limited to 'iptables/nft-arp.c') 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, -- cgit v1.2.3