summaryrefslogtreecommitdiffstats
path: root/examples
diff options
context:
space:
mode:
authorPablo Neira Ayuso <pablo@netfilter.org>2013-07-18 19:24:14 +0200
committerPablo Neira Ayuso <pablo@netfilter.org>2013-07-18 19:24:29 +0200
commitd7e0d23e32f72454b4868c62aa4add5c10675695 (patch)
tree9d269629d1643a18fbd8136e30c556dda1b1d100 /examples
parent268532705150893cef4bdb4cb74f1c883c481652 (diff)
examples: nft-chain-get: allow to list chain from all families
So far, it was restricted to AF_INET. Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
Diffstat (limited to 'examples')
-rw-r--r--examples/nft-chain-get.c46
1 files changed, 23 insertions, 23 deletions
diff --git a/examples/nft-chain-get.c b/examples/nft-chain-get.c
index e842c9a..ac9474a 100644
--- a/examples/nft-chain-get.c
+++ b/examples/nft-chain-get.c
@@ -53,29 +53,30 @@ int main(int argc, char *argv[])
struct nlmsghdr *nlh;
uint32_t portid, seq, type = NFT_CHAIN_O_DEFAULT;
struct nft_chain *t = NULL;
- int ret;
+ int ret, family;
seq = time(NULL);
- if (argc >= 1 && argc <= 2) {
- nlh = nft_chain_nlmsg_build_hdr(buf, NFT_MSG_GETCHAIN, AF_INET,
- NLM_F_DUMP, seq);
- } else if (argc >= 4 && argc <= 5) {
- int family;
-
- if (strcmp(argv[1], "ip") == 0)
- family = NFPROTO_IPV4;
- else if (strcmp(argv[1], "ip6") == 0)
- family = NFPROTO_IPV6;
- else if (strcmp(argv[1], "bridge") == 0)
- family = NFPROTO_BRIDGE;
- else if (strcmp(argv[1], "arp") == 0)
- family = NFPROTO_ARP;
- else {
- fprintf(stderr, "Unknown family: ip, ip6, bridge, arp\n");
- exit(EXIT_FAILURE);
- }
+ if (argc < 2 || argc > 5) {
+ fprintf(stderr, "Usage: %s <family> [<table> <chain>] [xml]\n",
+ argv[0]);
+ exit(EXIT_FAILURE);
+ }
+ if (strcmp(argv[1], "ip") == 0)
+ family = NFPROTO_IPV4;
+ else if (strcmp(argv[1], "ip6") == 0)
+ family = NFPROTO_IPV6;
+ else if (strcmp(argv[1], "bridge") == 0)
+ family = NFPROTO_BRIDGE;
+ else if (strcmp(argv[1], "arp") == 0)
+ family = NFPROTO_ARP;
+ else {
+ fprintf(stderr, "Unknown family: ip, ip6, bridge, arp\n");
+ exit(EXIT_FAILURE);
+ }
+
+ if (argc >= 4) {
t = nft_chain_alloc();
if (t == NULL) {
perror("OOM");
@@ -87,10 +88,9 @@ int main(int argc, char *argv[])
nft_chain_attr_set(t, NFT_CHAIN_ATTR_NAME, argv[3]);
nft_chain_nlmsg_build_payload(nlh, t);
nft_chain_free(t);
- } else {
- fprintf(stderr, "Usage: %s [<family> <table> <chain>] [xml]\n",
- argv[0]);
- exit(EXIT_FAILURE);
+ } else if (argc >= 2) {
+ nlh = nft_chain_nlmsg_build_hdr(buf, NFT_MSG_GETCHAIN, family,
+ NLM_F_DUMP, seq);
}
if (strcmp(argv[argc-1], "xml") == 0){