Compatibility with iptables 1.4.0
Subsystems (2)
PATCH 1/1 Compatibility with iptables 1.4.0
Hi, probably like this will be better?
Previous patch was not backward compatible.
Btw i checked twice, name is changed from libipt_MARK to libxt_MARK. So probably when you have tested this, your iproute2 was looking to old libipt_MARK (iptables is not deleting old libraries on make install).
-------------------------
New iptables 1.4.0 need additional dummy functions, and some library names is changed from libipt to libxt.
It is prefferable also to open libxt_ first, as newer "style".
--- drivers/watchdog/w83697hf_wdt.c | 4 +++- 1 files changed, 3 insertions(+), 1 deletions(-)
tc/m_ipt.c 2007-12-24 17:46:14.000000000 +0200 renamed from tc/m_ipt.c 2007-12-24 16:59:19.000000000 +0200 +31 -7
@@ -69,6 +69,27 @@ } void +xtables_register_target(struct iptables_target *me) +{ + me->next = t_list; + t_list = me; +} + + +void +xtables_register_match(struct iptables_target *me) +{ + me->next = t_list; + t_list = me; +} + +void exit_tryhelp(int status) { fprintf(stderr, "Try `%s -h' or '%s --help' for more information.\n",
@@ -248,16 +269,25 @@ } } - sprintf(path, "%s/libipt_%s.so",lib_dir, new_name); + 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); + sprintf(path, "%s/libipt_%s.so", lib_dir , new_name); handle = dlopen(path, RTLD_LAZY); - if (!handle) { - fputs(dlerror(), stderr); - printf("\n"); - return NULL; - } + } + 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); + } + if (!handle) { + sprintf(path, "%s/libipt_%s.so", lib_dir , lname); + fputs(dlerror(), stderr); + printf("\n"); + return NULL; } m = dlsym(handle, new_name);
--
Denys Fedoryshchenko
Technical Manager
Virtual ISP S.A.L.
Quoted 7 lines · Denys Fedoryshchenko
Hi, probably like this will be better?
Previous patch was not backward compatible.Btw i checked twice, name is changed from
libipt_MARKtolibxt_MARK. So probably when you have tested this, your iproute2 was looking to oldlibipt_MARK(iptables is not deleting old libraries on make install).
Grr. I tested with a different iptables target and thought the rest work in the same manner. iptables needs to be consistent.
-----
lilsol:~# export IPTABLES_LIB_DIR=/root/iptables-1.4.0/extensions/
lilsol:~# tc actions add action ipt -j TOS --set-tos
Maximize-Reliability
tablename: mangle hook: NF_IP_POST_ROUTING
target: TOS set Maximize-Reliability index 0
lilsol:~# tc actions ls action ipt action order 0: tablename: mangle hook: NF_IP_POST_ROUTING target TOS set Maximize-Reliability
index 2 ref 1 bind 0
// the above is what i tested
// below is what you did
lilsol:~# tc actions add action ipt -j mark --set-mark 3 /root/iptables-1.4.0/extensions/: cannot read file data: Is a directory failed to find target mark
bad action parsingparse_action: bad value (5:ipt)!
Illegal "action"
Command "add" is unknown, try "tc actions help".
lilsol:~#
------------
Applying your patch ....
Seems corrupt; let me fix it up, test it and resend it to Stephen.
cheers,
jamal
I just submitted a tested, slightly reduced patch (example we dont need to register matches) and it works as expected now. Thanks for the excellent work Denys.
Pablo, below looks an oversight.
I think there are some libraries like the mark target need also to be backward compatible.
cheers,
jamal
Quoted 33 lines · jamal
Grr. I tested with a different iptables target and thought the rest work in the same manner. iptables needs to be consistent.
-----
lilsol:~# export IPTABLES_LIB_DIR=/root/iptables-1.4.0/extensions/ lilsol:~# tc actions add action ipt -j TOS --set-tos Maximize-Reliability tablename: mangle hook: NF_IP_POST_ROUTING target: TOS set Maximize-Reliability index 0 lilsol:~# tc actions ls action iptaction order 0: tablename: mangle hook:
NF_IP_POST_ROUTINGtarget TOS set Maximize-Reliability
index 2 ref 1 bind 0
// the above is what i tested
// below is what you didlilsol:~# tc actions add action ipt -j mark --set-mark 3 /root/iptables-1.4.0/extensions/: cannot read file data: Is a directory failed to find target markbad action parsing
parse_action: bad value (5:ipt)!
Illegal "action"
Command "add" is unknown, try "tc actions help".
lilsol:~#
------------Applying your patch ....
Seems corrupt; let me fix it up, test it and resend it to Stephen.cheers,
jamal
Hi Jamal,
Quoted 3 lines · jamal
Pablo, below looks an oversight.
I think there are some libraries like the mark target need also to be backward compatible.
Shouldn't "mark" be in capital letters?
Quoted 2 lines
Quoted 2 lines
lilsol:~# export IPTABLES_LIB_DIR=/root/iptables-1.4.0/extensions/ lilsol:~# tc actions add action ipt -j TOS --set-tos
^^^
this is OK
Quoted 1 line
Quoted 1 line
lilsol:~# tc actions add action ipt -j mark --set-mark 3
^^^
MARKI'm sorry for the breakage. We definitely need a library for iptables so this sort of stuff would not happen :(
Signature · 1 line
"Los honestos son inadaptados sociales" -- Les Luthiers