summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
author/C=DE/ST=Berlin/L=Berlin/O=Netfilter Project/OU=Development/CN=kaber/emailAddress=kaber@netfilter.org </C=DE/ST=Berlin/L=Berlin/O=Netfilter Project/OU=Development/CN=kaber/emailAddress=kaber@netfilter.org>2005-03-04 23:08:30 +0000
committer/C=DE/ST=Berlin/L=Berlin/O=Netfilter Project/OU=Development/CN=kaber/emailAddress=kaber@netfilter.org </C=DE/ST=Berlin/L=Berlin/O=Netfilter Project/OU=Development/CN=kaber/emailAddress=kaber@netfilter.org>2005-03-04 23:08:30 +0000
commit6b08b0d31723e80a749aa26e5f2ae1374e45febe (patch)
tree54f67a75c729437617259cc2d3301980d0f34beb
parent348fa4e735d2e09eadc5cb609903a73464bd56d3 (diff)
Restore chain order (Olaf Rempel <razzor@kopf-tisch.de>)
-rw-r--r--libiptc/libiptc.c11
1 files changed, 7 insertions, 4 deletions
diff --git a/libiptc/libiptc.c b/libiptc/libiptc.c
index d3d0fa7..9f7d2ce 100644
--- a/libiptc/libiptc.c
+++ b/libiptc/libiptc.c
@@ -396,10 +396,13 @@ static inline void iptc_insert_chain(TC_HANDLE_T h, struct chain_head *c)
{
struct chain_head *tmp;
- list_for_each_entry(tmp, &h->chains, list) {
- if (strcmp(c->name, tmp->name) <= 0) {
- list_add(&c->list, tmp->list.prev);
- return;
+ /* sort only user defined chains */
+ if (!c->hooknum) {
+ list_for_each_entry(tmp, &h->chains, list) {
+ if (strcmp(c->name, tmp->name) <= 0) {
+ list_add(&c->list, tmp->list.prev);
+ return;
+ }
}
}