summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPablo Neira Ayuso <pablo@netfilter.org>2013-07-16 22:30:18 +0200
committerPablo Neira Ayuso <pablo@netfilter.org>2013-07-16 22:46:34 +0200
commitd5cb5967adab0dd4d52b62bc62b8b59dbb5a6056 (patch)
tree2c8fc8e32cbffa12ff182f8b42ce71027ca61798
parent74ccff7386b8577f559fa4158668490a0f48ac70 (diff)
src: add nft_*_list_add_tail
This redefines the meaning of nft_*_list_add to prepend, before this patch it was appending, which was semantically wrong. Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
-rw-r--r--include/libnftables/chain.h1
-rw-r--r--include/libnftables/rule.h1
-rw-r--r--include/libnftables/set.h1
-rw-r--r--include/libnftables/table.h1
-rw-r--r--src/chain.c8
-rw-r--r--src/libnftables.map4
-rw-r--r--src/rule.c8
-rw-r--r--src/set.c8
-rw-r--r--src/table.c8
9 files changed, 36 insertions, 4 deletions
diff --git a/include/libnftables/chain.h b/include/libnftables/chain.h
index 0eceda1..e20dbd1 100644
--- a/include/libnftables/chain.h
+++ b/include/libnftables/chain.h
@@ -69,6 +69,7 @@ int nft_chain_list_is_empty(struct nft_chain_list *list);
int nft_chain_list_foreach(struct nft_chain_list *chain_list, int (*cb)(struct nft_chain *t, void *data), void *data);
void nft_chain_list_add(struct nft_chain *r, struct nft_chain_list *list);
+void nft_chain_list_add_tail(struct nft_chain *r, struct nft_chain_list *list);
void nft_chain_list_del(struct nft_chain *r);
struct nft_chain_list_iter;
diff --git a/include/libnftables/rule.h b/include/libnftables/rule.h
index cadd14d..ea136ff 100644
--- a/include/libnftables/rule.h
+++ b/include/libnftables/rule.h
@@ -75,6 +75,7 @@ struct nft_rule_list *nft_rule_list_alloc(void);
void nft_rule_list_free(struct nft_rule_list *list);
int nft_rule_list_is_empty(struct nft_rule_list *list);
void nft_rule_list_add(struct nft_rule *r, struct nft_rule_list *list);
+void nft_rule_list_add_tail(struct nft_rule *r, struct nft_rule_list *list);
int nft_rule_list_foreach(struct nft_rule_list *rule_list, int (*cb)(struct nft_rule *t, void *data), void *data);
struct nft_rule_list_iter;
diff --git a/include/libnftables/set.h b/include/libnftables/set.h
index 4a94a85..971f967 100644
--- a/include/libnftables/set.h
+++ b/include/libnftables/set.h
@@ -43,6 +43,7 @@ struct nft_set_list *nft_set_list_alloc(void);
void nft_set_list_free(struct nft_set_list *list);
int nft_set_list_is_empty(struct nft_set_list *list);
void nft_set_list_add(struct nft_set *s, struct nft_set_list *list);
+void nft_set_list_add_tail(struct nft_set *s, struct nft_set_list *list);
int nft_set_list_foreach(struct nft_set_list *set_list, int (*cb)(struct nft_set *t, void *data), void *data);
struct nft_set_list_iter;
diff --git a/include/libnftables/table.h b/include/libnftables/table.h
index 4fc19eb..57ddb2e 100644
--- a/include/libnftables/table.h
+++ b/include/libnftables/table.h
@@ -57,6 +57,7 @@ int nft_table_list_is_empty(struct nft_table_list *list);
int nft_table_list_foreach(struct nft_table_list *table_list, int (*cb)(struct nft_table *t, void *data), void *data);
void nft_table_list_add(struct nft_table *r, struct nft_table_list *list);
+void nft_table_list_add_tail(struct nft_table *r, struct nft_table_list *list);
struct nft_table_list_iter;
diff --git a/src/chain.c b/src/chain.c
index b59c5e0..0a0e688 100644
--- a/src/chain.c
+++ b/src/chain.c
@@ -884,10 +884,16 @@ EXPORT_SYMBOL(nft_chain_list_is_empty);
void nft_chain_list_add(struct nft_chain *r, struct nft_chain_list *list)
{
- list_add_tail(&r->head, &list->list);
+ list_add(&r->head, &list->list);
}
EXPORT_SYMBOL(nft_chain_list_add);
+void nft_chain_list_add_tail(struct nft_chain *r, struct nft_chain_list *list)
+{
+ list_add_tail(&r->head, &list->list);
+}
+EXPORT_SYMBOL(nft_chain_list_add_tail);
+
void nft_chain_list_del(struct nft_chain *r)
{
list_del(&r->head);
diff --git a/src/libnftables.map b/src/libnftables.map
index a60b943..f2084d9 100644
--- a/src/libnftables.map
+++ b/src/libnftables.map
@@ -20,6 +20,7 @@ global:
nft_table_list_is_empty;
nft_table_list_foreach;
nft_table_list_add;
+ nft_table_list_add_tail;
nft_table_list_iter_create;
nft_table_list_iter_next;
nft_table_list_iter_destroy;
@@ -47,6 +48,7 @@ global:
nft_chain_list_free;
nft_chain_list_is_empty;
nft_chain_list_add;
+ nft_chain_list_add_tail;
nft_chain_list_del;
nft_chain_list_foreach;
nft_chain_list_iter_create;
@@ -98,6 +100,7 @@ global:
nft_rule_list_free;
nft_rule_list_is_empty;
nft_rule_list_add;
+ nft_rule_list_add_tail;
nft_rule_list_foreach;
nft_rule_list_iter_create;
nft_rule_list_iter_cur;
@@ -122,6 +125,7 @@ global:
nft_set_list_alloc;
nft_set_list_free;
nft_set_list_add;
+ nft_set_list_add_tail;
nft_set_list_is_empty;
nft_set_list_foreach;
diff --git a/src/rule.c b/src/rule.c
index aa7aee8..df9d739 100644
--- a/src/rule.c
+++ b/src/rule.c
@@ -875,10 +875,16 @@ EXPORT_SYMBOL(nft_rule_list_is_empty);
void nft_rule_list_add(struct nft_rule *r, struct nft_rule_list *list)
{
- list_add_tail(&r->head, &list->list);
+ list_add(&r->head, &list->list);
}
EXPORT_SYMBOL(nft_rule_list_add);
+void nft_rule_list_add_tail(struct nft_rule *r, struct nft_rule_list *list)
+{
+ list_add_tail(&r->head, &list->list);
+}
+EXPORT_SYMBOL(nft_rule_list_add_tail);
+
int nft_rule_list_foreach(struct nft_rule_list *rule_list,
int (*cb)(struct nft_rule *r, void *data),
void *data)
diff --git a/src/set.c b/src/set.c
index 2616cae..1ccfd23 100644
--- a/src/set.c
+++ b/src/set.c
@@ -492,10 +492,16 @@ EXPORT_SYMBOL(nft_set_list_is_empty);
void nft_set_list_add(struct nft_set *s, struct nft_set_list *list)
{
- list_add_tail(&s->head, &list->list);
+ list_add(&s->head, &list->list);
}
EXPORT_SYMBOL(nft_set_list_add);
+void nft_set_list_add_tail(struct nft_set *s, struct nft_set_list *list)
+{
+ list_add_tail(&s->head, &list->list);
+}
+EXPORT_SYMBOL(nft_set_list_add_tail);
+
int nft_set_list_foreach(struct nft_set_list *set_list,
int (*cb)(struct nft_set *t, void *data), void *data)
{
diff --git a/src/table.c b/src/table.c
index 9ec4117..bdab178 100644
--- a/src/table.c
+++ b/src/table.c
@@ -418,10 +418,16 @@ EXPORT_SYMBOL(nft_table_list_is_empty);
void nft_table_list_add(struct nft_table *r, struct nft_table_list *list)
{
- list_add_tail(&r->head, &list->list);
+ list_add(&r->head, &list->list);
}
EXPORT_SYMBOL(nft_table_list_add);
+void nft_table_list_add_tail(struct nft_table *r, struct nft_table_list *list)
+{
+ list_add_tail(&r->head, &list->list);
+}
+EXPORT_SYMBOL(nft_table_list_add_tail);
+
int nft_table_list_foreach(struct nft_table_list *table_list,
int (*cb)(struct nft_table *t, void *data),
void *data)