From: Eric Leblond Date: Mon, 16 Sep 2013 16:27:38 +0000 (+0200) Subject: display family in table listing X-Git-Tag: v0.099~71 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=6faf017b115901d46a99bfb7bfb9ca52a0d8954e;p=thirdparty%2Fnftables.git 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 --- diff --git a/src/rule.c b/src/rule.c index 2cf024a4b..52f5e16bd 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;