Commit 73de5d96 authored by Andreas Henriksson's avatar Andreas Henriksson Committed by Stephen Hemminger

iproute2: Fix building xt module against xtables version 6

iptables/xtables apparently changed API again.... Now you need to pass
and extra parameter (orig_opts) which was not needed before.

Sprinkle some lovely pre-processor magic to be compatible with both older
and new versions. In the beginning of times XTABLES_VERSION_CODE didn't
exist. Then it was (0x10000 * major + 0x100 * minor + patch) when it was
first introduced (according to git), but now it's at 6...
Don't know what official iptables releases has defined it to over time.
Lets just hope none of the older versions with is has the define
higher then 6 is still around.... so only the "current" versioning
scheme is supported.... lets see how long this lasts now.

For the API change in xtables, see:
http://git.netfilter.org/cgi-bin/gitweb.cgi?p=iptables.git;a=commitdiff;h=600f38db82548a683775fd89b6e136673e924097Signed-off-by: default avatarAndreas Henriksson <andreas@fatal.se>
parent 5582c0cf
......@@ -160,9 +160,13 @@ static int parse_ipt(struct action_util *a,int *argc_p,
return -1;
}
tcipt_globals.opts =
xtables_merge_options(tcipt_globals.opts,
m->extra_opts,
&m->option_offset);
xtables_merge_options(
#if (XTABLES_VERSION_CODE >= 6)
tcipt_globals.orig_opts,
#endif
tcipt_globals.opts,
m->extra_opts,
&m->option_offset);
} else {
fprintf(stderr," failed to find target %s\n\n", optarg);
return -1;
......@@ -305,7 +309,11 @@ print_ipt(struct action_util *au,FILE * f, struct rtattr *arg)
}
tcipt_globals.opts =
xtables_merge_options(tcipt_globals.opts,
xtables_merge_options(
#if (XTABLES_VERSION_CODE >= 6)
tcipt_globals.orig_opts,
#endif
tcipt_globals.opts,
m->extra_opts,
&m->option_offset);
} else {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment