From 6faf017b115901d46a99bfb7bfb9ca52a0d8954e Mon Sep 17 00:00:00 2001 From: Eric Leblond Date: Mon, 16 Sep 2013 18:27:38 +0200 Subject: display family in table listing As family was not displayed in table listing, it was not possible to restore an ipv6 table saved via 'nft list table ip6 TABLE'. Signed-off-by: Eric Leblond Signed-off-by: Pablo Neira Ayuso --- src/rule.c | 20 +++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) diff --git a/src/rule.c b/src/rule.c index 2cf024a4..52f5e16b 100644 --- a/src/rule.c +++ b/src/rule.c @@ -269,6 +269,23 @@ struct chain *chain_lookup(const struct table *table, const struct handle *h) return NULL; } +static const char *family2str(unsigned int family) +{ + switch (family) { + case NFPROTO_IPV4: + return "ip"; + case NFPROTO_IPV6: + return "ip6"; + case NFPROTO_ARP: + return "arp"; + case NFPROTO_BRIDGE: + return "bridge"; + default: + break; + } + return "unknown"; +} + static const char *hooknum2str(unsigned int family, unsigned int hooknum) { switch (family) { @@ -371,8 +388,9 @@ static void table_print(const struct table *table) struct chain *chain; struct set *set; const char *delim = ""; + const char *family = family2str(table->handle.family); - printf("table %s {\n", table->handle.table); + printf("table %s %s {\n", family, table->handle.table); list_for_each_entry(set, &table->sets, list) { if (set->flags & SET_F_ANONYMOUS) continue; -- cgit v1.2.3