]> git.ipfire.org Git - thirdparty/nftables.git/commitdiff
netlink: add netlink_delinearize_table() func
authorArturo Borrero <arturo.borrero.glez@gmail.com>
Mon, 14 Apr 2014 10:17:30 +0000 (12:17 +0200)
committerPablo Neira Ayuso <pablo@netfilter.org>
Fri, 25 Apr 2014 15:45:32 +0000 (17:45 +0200)
This code is suitable to be reusable.

Signed-off-by: Arturo Borrero Gonzalez <arturo.borrero.glez@gmail.com>
Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
src/netlink.c

index a2a2eeb38e366347c6e3cbe85be5d75319581021..5308aea150dd0884383d5d8a73efb0024a9b8ea7 100644 (file)
@@ -656,9 +656,9 @@ void netlink_dump_table(struct nft_table *nlt)
 #endif
 }
 
-static int list_table_cb(struct nft_table *nlt, void *arg)
+static struct table *netlink_delinearize_table(struct netlink_ctx *ctx,
+                                              struct nft_table *nlt)
 {
-       struct netlink_ctx *ctx = arg;
        struct table *table;
 
        netlink_dump_table(nlt);
@@ -669,6 +669,15 @@ static int list_table_cb(struct nft_table *nlt, void *arg)
                xstrdup(nft_table_attr_get_str(nlt, NFT_TABLE_ATTR_NAME));
        list_add_tail(&table->list, &ctx->list);
 
+       return table;
+}
+
+static int list_table_cb(struct nft_table *nlt, void *arg)
+{
+       struct netlink_ctx *ctx = arg;
+
+       netlink_delinearize_table(ctx, nlt);
+
        return 0;
 }