summaryrefslogtreecommitdiffstats
path: root/src/rule.c
diff options
context:
space:
mode:
authorEric Leblond <eric@regit.org>2013-09-16 18:27:38 +0200
committerPablo Neira Ayuso <pablo@netfilter.org>2013-09-17 13:11:22 +0200
commit6faf017b115901d46a99bfb7bfb9ca52a0d8954e (patch)
treeed7d752503cb49aea06c612dc0e804e24531ccc7 /src/rule.c
parent57f844782fa86660ce16b79b485ec34729bce4f7 (diff)
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 <eric@regit.org> Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
Diffstat (limited to 'src/rule.c')
-rw-r--r--src/rule.c20
1 files changed, 19 insertions, 1 deletions
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;