summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorArturo Borrero <arturo.borrero.glez@gmail.com>2014-04-14 12:17:30 +0200
committerPablo Neira Ayuso <pablo@netfilter.org>2014-04-25 17:45:32 +0200
commitaf657c08de5cf2d1fa3b8fccdb3aef78654afcad (patch)
treef2c50ce007dda077f46ea2ad7ebad60ec569f278 /src
parent38756bcdc261866b5ca044fe5f0b1150b6128cea (diff)
netlink: add netlink_delinearize_table() func
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>
Diffstat (limited to 'src')
-rw-r--r--src/netlink.c13
1 files changed, 11 insertions, 2 deletions
diff --git a/src/netlink.c b/src/netlink.c
index a2a2eeb3..5308aea1 100644
--- a/src/netlink.c
+++ b/src/netlink.c
@@ -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;
}