[NETFILTER]: Prepare {ipt,ip6t}_policy match for x_tables unification
The IPv4 and IPv6 version of the policy match are identical besides address comparison and the data structure used for userspace communication. Unify the data structures to break compatiblity now (before it is released), so we can port it to x_tables in 2.6.17. Signed-off-by: Patrick McHardy <kaber@trash.net> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
committed by
David S. Miller
parent
878c41ce57
commit
0047c65a60
@@ -26,10 +26,13 @@ MODULE_LICENSE("GPL");
|
||||
static inline int
|
||||
match_xfrm_state(struct xfrm_state *x, const struct ipt_policy_elem *e)
|
||||
{
|
||||
#define MATCH(x,y) (!e->match.x || ((e->x == (y)) ^ e->invert.x))
|
||||
#define MATCH_ADDR(x,y,z) (!e->match.x || \
|
||||
((e->x.a4.s_addr == (e->y.a4.s_addr & (z))) \
|
||||
^ e->invert.x))
|
||||
#define MATCH(x,y) (!e->match.x || ((e->x == (y)) ^ e->invert.x))
|
||||
|
||||
return MATCH(saddr, x->props.saddr.a4 & e->smask) &&
|
||||
MATCH(daddr, x->id.daddr.a4 & e->dmask) &&
|
||||
return MATCH_ADDR(saddr, smask, x->props.saddr.a4) &&
|
||||
MATCH_ADDR(daddr, dmask, x->id.daddr.a4) &&
|
||||
MATCH(proto, x->id.proto) &&
|
||||
MATCH(mode, x->props.mode) &&
|
||||
MATCH(spi, x->id.spi) &&
|
||||
|
Reference in New Issue
Block a user