summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorEric Leblond <eric@regit.org>2013-11-18 08:40:21 +0100
committerPablo Neira Ayuso <pablo@netfilter.org>2013-11-19 21:31:32 +0100
commita6931ebc4742476ce3098d74e4ece263c65ae142 (patch)
tree15bdf7d2abc11ecbff50fc234411c7b94fb51747 /src
parent3451f89c65345dd22987c068647f54625b2f26ee (diff)
netlink: only display wanted chain in listing
When specifying a chain to list, all created chains were displayed with a void content: # nft list chain filter table ip filter { chain input { } chain new { counter packets 17971 bytes 2380637 accept counter packets 0 bytes 0 accept } } With the attached patch, only the asked chain is displayed: # nft list chain filter table ip filter { chain new { counter packets 17971 bytes 2380637 accept # handle 36 counter packets 0 bytes 0 accept # handle 40 } } Signed-off-by: Eric Leblond <eric@regit.org> Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
Diffstat (limited to 'src')
-rw-r--r--src/netlink.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/src/netlink.c b/src/netlink.c
index a62c3572..15cba793 100644
--- a/src/netlink.c
+++ b/src/netlink.c
@@ -544,6 +544,10 @@ static int list_chain_cb(struct nft_chain *nlc, void *arg)
strcmp(nft_chain_attr_get_str(nlc, NFT_CHAIN_ATTR_TABLE), h->table) != 0)
return 0;
+ if (h->chain &&
+ strcmp(nft_chain_attr_get_str(nlc, NFT_CHAIN_ATTR_NAME), h->chain) != 0)
+ return 0;
+
chain = chain_alloc(nft_chain_attr_get_str(nlc, NFT_CHAIN_ATTR_NAME));
chain->handle.family =
nft_chain_attr_get_u32(nlc, NFT_CHAIN_ATTR_FAMILY);