From e0f0f01c249ce659947fb8ca592da3c7062b7fa6 Mon Sep 17 00:00:00 2001 From: Pablo Neira Ayuso Date: Mon, 17 Jun 2013 00:39:38 +0200 Subject: src: add nft_*_attr_is_set Signed-off-by: Pablo Neira Ayuso --- src/chain.c | 6 ++++++ src/expr.c | 6 ++++++ src/libnftables.map | 6 ++++++ src/rule.c | 6 ++++++ src/set.c | 6 ++++++ src/set_elem.c | 6 ++++++ src/table.c | 6 ++++++ 7 files changed, 42 insertions(+) (limited to 'src') diff --git a/src/chain.c b/src/chain.c index 62a6ddd..4f85606 100644 --- a/src/chain.c +++ b/src/chain.c @@ -59,6 +59,12 @@ void nft_chain_free(struct nft_chain *c) } EXPORT_SYMBOL(nft_chain_free); +bool nft_chain_attr_is_set(struct nft_chain *c, uint16_t attr) +{ + return c->flags & (1 << attr); +} +EXPORT_SYMBOL(nft_chain_attr_is_set); + void nft_chain_attr_unset(struct nft_chain *c, uint16_t attr) { switch (attr) { diff --git a/src/expr.c b/src/expr.c index 3a66986..0ee2c4b 100644 --- a/src/expr.c +++ b/src/expr.c @@ -53,6 +53,12 @@ void nft_rule_expr_free(struct nft_rule_expr *expr) } EXPORT_SYMBOL(nft_rule_expr_free); +bool nft_rule_expr_is_set(const struct nft_rule_expr *expr, uint16_t type) +{ + return expr->flags & (1 << type); +} +EXPORT_SYMBOL(nft_rule_expr_is_set); + void nft_rule_expr_set(struct nft_rule_expr *expr, uint16_t type, const void *data, size_t data_len) diff --git a/src/libnftables.map b/src/libnftables.map index 6ee7a36..7be6588 100644 --- a/src/libnftables.map +++ b/src/libnftables.map @@ -2,6 +2,7 @@ LIBNFTABLES_1.0 { global: nft_table_alloc; nft_table_free; + nft_table_attr_is_set; nft_table_attr_unset; nft_table_attr_set; nft_table_attr_get; @@ -24,6 +25,7 @@ global: nft_chain_alloc; nft_chain_free; + nft_chain_attr_is_set; nft_chain_attr_unset; nft_chain_attr_set; nft_chain_attr_set_u32; @@ -51,6 +53,7 @@ global: nft_rule_alloc; nft_rule_free; + nft_rule_attr_is_set; nft_rule_attr_unset; nft_rule_attr_set; nft_rule_attr_set_u32; @@ -74,6 +77,7 @@ global: nft_rule_expr_iter_destroy; nft_rule_expr_alloc; + nft_rule_expr_is_set; nft_rule_expr_set; nft_rule_expr_set_u8; nft_rule_expr_set_u32; @@ -99,6 +103,7 @@ global: nft_set_alloc; nft_set_free; nft_set_attr_unset; + nft_set_attr_is_set; nft_set_attr_set; nft_set_attr_set_u32; nft_set_attr_set_str; @@ -124,6 +129,7 @@ global: nft_set_elem_free; nft_set_elem_add; nft_set_elem_foreach; + nft_set_elem_attr_is_set; nft_set_elem_attr_unset; nft_set_elem_attr_set; nft_set_elem_attr_set_u32; diff --git a/src/rule.c b/src/rule.c index 13b5a11..67062cf 100644 --- a/src/rule.c +++ b/src/rule.c @@ -71,6 +71,12 @@ void nft_rule_free(struct nft_rule *r) } EXPORT_SYMBOL(nft_rule_free); +bool nft_rule_attr_is_set(struct nft_rule *r, uint16_t attr) +{ + return r->flags & (1 << attr); +} +EXPORT_SYMBOL(nft_rule_attr_is_set); + void nft_rule_attr_unset(struct nft_rule *r, uint16_t attr) { switch (attr) { diff --git a/src/set.c b/src/set.c index 4d16062..61a0c2e 100644 --- a/src/set.c +++ b/src/set.c @@ -56,6 +56,12 @@ void nft_set_free(struct nft_set *s) } EXPORT_SYMBOL(nft_set_free); +bool nft_set_attr_is_set(struct nft_set *s, uint16_t attr) +{ + return s->flags & (1 << attr); +} +EXPORT_SYMBOL(nft_set_attr_is_set); + void nft_set_attr_unset(struct nft_set *s, uint16_t attr) { switch (attr) { diff --git a/src/set_elem.c b/src/set_elem.c index 209227f..eb9cb7a 100644 --- a/src/set_elem.c +++ b/src/set_elem.c @@ -44,6 +44,12 @@ void nft_set_elem_free(struct nft_set_elem *s) } EXPORT_SYMBOL(nft_set_elem_free); +bool nft_set_elem_attr_is_set(struct nft_set_elem *s, uint16_t attr) +{ + return s->flags & (1 << attr); +} +EXPORT_SYMBOL(nft_set_elem_attr_is_set); + void nft_set_elem_attr_unset(struct nft_set_elem *s, uint16_t attr) { switch (attr) { diff --git a/src/table.c b/src/table.c index 3e8d4c9..c33f01c 100644 --- a/src/table.c +++ b/src/table.c @@ -49,6 +49,12 @@ void nft_table_free(struct nft_table *t) } EXPORT_SYMBOL(nft_table_free); +bool nft_table_attr_is_set(struct nft_table *t, uint16_t attr) +{ + return t->flags & (1 << attr); +} +EXPORT_SYMBOL(nft_table_attr_is_set); + void nft_table_attr_unset(struct nft_table *t, uint16_t attr) { switch (attr) { -- cgit v1.2.3