summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/chain.c6
-rw-r--r--src/expr.c6
-rw-r--r--src/libnftables.map6
-rw-r--r--src/rule.c6
-rw-r--r--src/set.c6
-rw-r--r--src/set_elem.c6
-rw-r--r--src/table.c6
7 files changed, 42 insertions, 0 deletions
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) {