iptables compatiablity

New iptables 1.4.0 has some library names changed from libipt to libxt.
It is prefferable also to open libxt_ first, as newer "style".

Signed-off-by: Denys Fedoryshchenko <nuclearcat@nuclearcat.com>
Signed-off-by: Jamal Hadi Salim <hadi@cyberus.ca>
Signed-off-by: Stephen Hemminger <stephen.hemminger@vyatta.com>
This commit is contained in:
Denys Fedoryshchenko 2007-12-24 11:51:11 -05:00 committed by Stephen Hemminger
parent eeee367d91
commit 53c017880b
1 changed files with 22 additions and 2 deletions

View File

@ -68,6 +68,13 @@ register_target(struct iptables_target *me)
}
void
xtables_register_target(struct iptables_target *me)
{
me->next = t_list;
t_list = me;
}
void
exit_tryhelp(int status)
{
@ -248,11 +255,24 @@ get_target_name(const char *name)
}
}
sprintf(path, "%s/libipt_%s.so",lib_dir, new_name);
/* try libxt_xx first */
sprintf(path, "%s/libxt_%s.so", lib_dir, new_name);
handle = dlopen(path, RTLD_LAZY);
if (!handle) {
sprintf(path, lib_dir, "/libipt_%s.so", lname);
/* try libipt_xx next */
sprintf(path, "%s/libipt_%s.so", lib_dir, new_name);
handle = dlopen(path, RTLD_LAZY);
if (!handle) {
sprintf(path, "%s/libxt_%s.so", lib_dir , lname);
handle = dlopen(path, RTLD_LAZY);
}
if (!handle) {
sprintf(path, "%s/libipt_%s.so", lib_dir , lname);
handle = dlopen(path, RTLD_LAZY);
}
/* ok, lets give up .. */
if (!handle) {
fputs(dlerror(), stderr);
printf("\n");