From f5b86e698be2f1f96c974a4af176269f5c677596 Mon Sep 17 00:00:00 2001 From: Jones Desougi Date: Thu, 22 Dec 2005 03:33:50 +0000 Subject: Fix probing for supported revisions (Jones Desougi ) Bugzilla #413 --- include/ip6tables.h | 1 + include/iptables.h | 1 + ip6tables.c | 8 ++++---- iptables.c | 8 ++++---- 4 files changed, 10 insertions(+), 8 deletions(-) diff --git a/include/ip6tables.h b/include/ip6tables.h index 81d99d86..549e0415 100644 --- a/include/ip6tables.h +++ b/include/ip6tables.h @@ -130,6 +130,7 @@ extern struct ip6tables_target *ip6tables_targets; enum ip6t_tryload { DONT_LOAD, + DURING_LOAD, TRY_LOAD, LOAD_MUST_SUCCEED }; diff --git a/include/iptables.h b/include/iptables.h index fbcf2eb4..bf71e526 100644 --- a/include/iptables.h +++ b/include/iptables.h @@ -162,6 +162,7 @@ extern struct iptables_target *iptables_targets; enum ipt_tryload { DONT_LOAD, + DURING_LOAD, TRY_LOAD, LOAD_MUST_SUCCEED }; diff --git a/ip6tables.c b/ip6tables.c index 3b32606c..6afe68fd 100644 --- a/ip6tables.c +++ b/ip6tables.c @@ -734,7 +734,7 @@ find_match(const char *name, enum ip6t_tryload tryload, struct ip6tables_rule_ma } #ifndef NO_SHARED_LIBS - if (!ptr && tryload != DONT_LOAD) { + if (!ptr && tryload != DONT_LOAD && tryload != DURING_LOAD) { char path[strlen(lib_dir) + sizeof("/libip6t_.so") + strlen(name)]; if (!icmphack) @@ -986,7 +986,7 @@ find_target(const char *name, enum ip6t_tryload tryload) } #ifndef NO_SHARED_LIBS - if (!ptr && tryload != DONT_LOAD) { + if (!ptr && tryload != DONT_LOAD && tryload != DURING_LOAD) { char path[strlen(lib_dir) + sizeof("/libip6t_.so") + strlen(name)]; sprintf(path, "%s/libip6t_%s.so", lib_dir, name); @@ -1058,7 +1058,7 @@ register_match6(struct ip6tables_match *me) exit(1); } - if (find_match(me->name, DONT_LOAD, NULL)) { + if (find_match(me->name, DURING_LOAD, NULL)) { fprintf(stderr, "%s: match `%s' already registered.\n", program_name, me->name); exit(1); @@ -1088,7 +1088,7 @@ register_target6(struct ip6tables_target *me) exit(1); } - if (find_target(me->name, DONT_LOAD)) { + if (find_target(me->name, DURING_LOAD)) { fprintf(stderr, "%s: target `%s' already registered.\n", program_name, me->name); exit(1); diff --git a/iptables.c b/iptables.c index 1ea80635..e22b9ea1 100644 --- a/iptables.c +++ b/iptables.c @@ -685,7 +685,7 @@ find_match(const char *name, enum ipt_tryload tryload, struct iptables_rule_matc } #ifndef NO_SHARED_LIBS - if (!ptr && tryload != DONT_LOAD) { + if (!ptr && tryload != DONT_LOAD && tryload != DURING_LOAD) { char path[strlen(lib_dir) + sizeof("/libipt_.so") + strlen(name)]; sprintf(path, "%s/libipt_%s.so", lib_dir, name); @@ -994,7 +994,7 @@ find_target(const char *name, enum ipt_tryload tryload) } #ifndef NO_SHARED_LIBS - if (!ptr && tryload != DONT_LOAD) { + if (!ptr && tryload != DONT_LOAD && tryload != DURING_LOAD) { char path[strlen(lib_dir) + sizeof("/libipt_.so") + strlen(name)]; sprintf(path, "%s/libipt_%s.so", lib_dir, name); @@ -1119,7 +1119,7 @@ register_match(struct iptables_match *me) exit(1); } - old = find_match(me->name, DONT_LOAD, NULL); + old = find_match(me->name, DURING_LOAD, NULL); if (old) { if (old->revision == me->revision) { fprintf(stderr, @@ -1175,7 +1175,7 @@ register_target(struct iptables_target *me) exit(1); } - old = find_target(me->name, DONT_LOAD); + old = find_target(me->name, DURING_LOAD); if (old) { struct iptables_target **i; -- cgit v1.2.3