aboutsummaryrefslogtreecommitdiffstats
path: root/net/bridge/netfilter/ebt_mark.c
diff options
context:
space:
mode:
authorBart De Schuymer <bdschuym@pandora.be>2006-11-29 02:35:40 +0100
committerDavid S. Miller <davem@sunset.davemloft.net>2006-12-02 21:31:32 -0800
commitd12cdc3ccf140bd2febef1c1be92284571da983f (patch)
treeb841cf72562e8179c9c187494a6fe4a3c2ddb184 /net/bridge/netfilter/ebt_mark.c
parentbaf7b1e11282127e068d149825cccec002091d61 (diff)
downloadkernel_samsung_smdk4412-d12cdc3ccf140bd2febef1c1be92284571da983f.zip
kernel_samsung_smdk4412-d12cdc3ccf140bd2febef1c1be92284571da983f.tar.gz
kernel_samsung_smdk4412-d12cdc3ccf140bd2febef1c1be92284571da983f.tar.bz2
[NETFILTER]: ebtables: add --snap-arp option
The attached patch adds --snat-arp support, which makes it possible to change the source mac address in both the mac header and the arp header with one rule. Signed-off-by: Bart De Schuymer <bdschuym@pandora.be> Signed-off-by: Patrick McHardy <kaber@trash.net>
Diffstat (limited to 'net/bridge/netfilter/ebt_mark.c')
-rw-r--r--net/bridge/netfilter/ebt_mark.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/net/bridge/netfilter/ebt_mark.c b/net/bridge/netfilter/ebt_mark.c
index 2458638..62d23c7 100644
--- a/net/bridge/netfilter/ebt_mark.c
+++ b/net/bridge/netfilter/ebt_mark.c
@@ -33,7 +33,7 @@ static int ebt_target_mark(struct sk_buff **pskb, unsigned int hooknr,
else
(*pskb)->mark ^= info->mark;
- return info->target | -16;
+ return info->target | ~EBT_VERDICT_BITS;
}
static int ebt_target_mark_check(const char *tablename, unsigned int hookmask,
@@ -44,13 +44,13 @@ static int ebt_target_mark_check(const char *tablename, unsigned int hookmask,
if (datalen != EBT_ALIGN(sizeof(struct ebt_mark_t_info)))
return -EINVAL;
- tmp = info->target | -16;
+ tmp = info->target | ~EBT_VERDICT_BITS;
if (BASE_CHAIN && tmp == EBT_RETURN)
return -EINVAL;
CLEAR_BASE_CHAIN_BIT;
if (tmp < -NUM_STANDARD_TARGETS || tmp >= 0)
return -EINVAL;
- tmp = info->target & -16;
+ tmp = info->target & ~EBT_VERDICT_BITS;
if (tmp != MARK_SET_VALUE && tmp != MARK_OR_VALUE &&
tmp != MARK_AND_VALUE && tmp != MARK_XOR_VALUE)
return -EINVAL;