diff options
author | Eric Leblond <eric@regit.org> | 2013-11-18 08:40:21 +0100 |
---|---|---|
committer | Pablo Neira Ayuso <pablo@netfilter.org> | 2013-11-19 21:31:32 +0100 |
commit | a6931ebc4742476ce3098d74e4ece263c65ae142 (patch) | |
tree | 15bdf7d2abc11ecbff50fc234411c7b94fb51747 /src | |
parent | 3451f89c65345dd22987c068647f54625b2f26ee (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.c | 4 |
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); |