compat_xtables: more 2.6.35 support

This commit is contained in:
Jan Engelhardt
2010-05-14 11:51:34 +02:00
parent 43921c5834
commit 54d80a73b4
3 changed files with 45 additions and 4 deletions

View File

@@ -62,7 +62,7 @@ else
fi; fi;
fi; fi;
echo "Found kernel version $kmajor.$kminor.$kmicro.$kstable in $kbuilddir"; echo "Found kernel version $kmajor.$kminor.$kmicro.$kstable in $kbuilddir";
if test "$kmajor" -gt 2 -o "$kminor" -gt 6 -o "$kmicro" -gt 34; then if test "$kmajor" -gt 2 -o "$kminor" -gt 6 -o "$kmicro" -gt 35; then
echo "WARNING: You are trying a newer kernel. Results may vary. :-)"; echo "WARNING: You are trying a newer kernel. Results may vary. :-)";
elif test \( "$kmajor" -lt 2 -o "$kminor" -lt 6 -o "$kmicro" -lt 17 \) -o \ elif test \( "$kmajor" -lt 2 -o "$kminor" -lt 6 -o "$kmicro" -lt 17 \) -o \
\( "$kmajor" -eq 2 -a "$kminor" -eq 6 -a "$kmicro" -eq 18 -a \ \( "$kmajor" -eq 2 -a "$kminor" -eq 6 -a "$kmicro" -eq 18 -a \

View File

@@ -275,6 +275,15 @@ xtnu_target_run(struct sk_buff *skb, const struct xt_target_param *par)
return nt->target(&skb, &local_par); return nt->target(&skb, &local_par);
} }
#endif #endif
#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 35)
static unsigned int
xtnu_target_run(struct sk_buff *skb, const struct xt_action_param *par)
{
struct xtnu_target *nt = xtcompat_nutarget(par->target);
return nt->target(&skb, par);
}
#endif
#if LINUX_VERSION_CODE <= KERNEL_VERSION(2, 6, 18) #if LINUX_VERSION_CODE <= KERNEL_VERSION(2, 6, 18)
static int xtnu_target_check(const char *table, const void *entry, static int xtnu_target_check(const char *table, const void *entry,

View File

@@ -62,7 +62,7 @@ xt_chaos_total(struct sk_buff *skb, const struct xt_action_param *par)
#if LINUX_VERSION_CODE <= KERNEL_VERSION(2, 6, 27) #if LINUX_VERSION_CODE <= KERNEL_VERSION(2, 6, 27)
ret = xm_tcp->match(skb, par->in, par->out, xm_tcp, &tcp_params, ret = xm_tcp->match(skb, par->in, par->out, xm_tcp, &tcp_params,
fragoff, thoff, &hotdrop); fragoff, thoff, &hotdrop);
#else #elif LINUX_VERSION_CODE <= KERNEL_VERSION(2, 6, 34)
{ {
struct xt_match_param local_par = { struct xt_match_param local_par = {
.in = par->in, .in = par->in,
@@ -75,6 +75,19 @@ xt_chaos_total(struct sk_buff *skb, const struct xt_action_param *par)
}; };
ret = xm_tcp->match(skb, &local_par); ret = xm_tcp->match(skb, &local_par);
} }
#else
{
struct xt_action_param local_par;
local_par.in = par->in,
local_par.out = par->out,
local_par.match = xm_tcp;
local_par.matchinfo = &tcp_params;
local_par.fragoff = fragoff;
local_par.thoff = thoff;
local_par.hotdrop = false;
ret = xm_tcp->match(skb, &local_par);
hotdrop = local_par.hotdrop;
}
#endif #endif
if (!ret || hotdrop || (unsigned int)net_random() > delude_percentage) if (!ret || hotdrop || (unsigned int)net_random() > delude_percentage)
return; return;
@@ -86,7 +99,7 @@ xt_chaos_total(struct sk_buff *skb, const struct xt_action_param *par)
destiny->target(&skb, par->in, par->out, par->hooknum, destiny, NULL); destiny->target(&skb, par->in, par->out, par->hooknum, destiny, NULL);
#elif LINUX_VERSION_CODE <= KERNEL_VERSION(2, 6, 27) #elif LINUX_VERSION_CODE <= KERNEL_VERSION(2, 6, 27)
destiny->target(skb, par->in, par->out, par->hooknum, destiny, NULL); destiny->target(skb, par->in, par->out, par->hooknum, destiny, NULL);
#else #elif LINUX_VERSION_CODE <= KERNEL_VERSION(2, 6, 34)
{ {
struct xt_target_param local_par = { struct xt_target_param local_par = {
.in = par->in, .in = par->in,
@@ -98,6 +111,17 @@ xt_chaos_total(struct sk_buff *skb, const struct xt_action_param *par)
}; };
destiny->target(skb, &local_par); destiny->target(skb, &local_par);
} }
#else
{
struct xt_action_param local_par;
local_par.in = par->in;
local_par.out = par->out;
local_par.hooknum = par->hooknum;
local_par.target = destiny;
local_par.targinfo = par->targinfo;
local_par.family = par->family;
destiny->target(skb, &local_par);
}
#endif #endif
} }
@@ -126,7 +150,7 @@ chaos_tg(struct sk_buff **pskb, const struct xt_action_param *par)
#elif LINUX_VERSION_CODE <= KERNEL_VERSION(2, 6, 27) #elif LINUX_VERSION_CODE <= KERNEL_VERSION(2, 6, 27)
return xt_reject->target(skb, par->in, par->out, par->hooknum, return xt_reject->target(skb, par->in, par->out, par->hooknum,
xt_reject, &reject_params); xt_reject, &reject_params);
#else #elif LINUX_VERSION_CODE <= KERNEL_VERSION(2, 6, 34)
struct xt_target_param local_par = { struct xt_target_param local_par = {
.in = par->in, .in = par->in,
.out = par->out, .out = par->out,
@@ -135,6 +159,14 @@ chaos_tg(struct sk_buff **pskb, const struct xt_action_param *par)
.targinfo = &reject_params, .targinfo = &reject_params,
}; };
return xt_reject->target(skb, &local_par); return xt_reject->target(skb, &local_par);
#else
struct xt_action_param local_par;
local_par.in = par->in;
local_par.out = par->out;
local_par.hooknum = par->hooknum;
local_par.target = xt_reject;
local_par.targinfo = &reject_params;
return xt_reject->target(skb, &local_par);
#endif #endif
} }