git.openpandora.org
/
pandora-kernel.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Merge branch 'e1000-fixes' of master.kernel.org:/pub/scm/linux/kernel/git/jgarzik...
[pandora-kernel.git]
/
net
/
ipv6
/
netfilter
/
ip6t_eui64.c
diff --git
a/net/ipv6/netfilter/ip6t_eui64.c
b/net/ipv6/netfilter/ip6t_eui64.c
index
4f6b84c
..
0f3dd93
100644
(file)
--- a/
net/ipv6/netfilter/ip6t_eui64.c
+++ b/
net/ipv6/netfilter/ip6t_eui64.c
@@
-12,6
+12,7
@@
#include <linux/ipv6.h>
#include <linux/if_ether.h>
#include <linux/ipv6.h>
#include <linux/if_ether.h>
+#include <linux/netfilter/x_tables.h>
#include <linux/netfilter_ipv6/ip6_tables.h>
MODULE_DESCRIPTION("IPv6 EUI64 address checking match");
#include <linux/netfilter_ipv6/ip6_tables.h>
MODULE_DESCRIPTION("IPv6 EUI64 address checking match");
@@
-31,8
+32,8
@@
match(const struct sk_buff *skb,
unsigned char eui64[8];
int i = 0;
unsigned char eui64[8];
int i = 0;
- if (!(skb
->mac.raw
>= skb->head &&
- (skb
->mac.raw
+ ETH_HLEN) <= skb->data) &&
+ if (!(skb
_mac_header(skb)
>= skb->head &&
+ (skb
_mac_header(skb)
+ ETH_HLEN) <= skb->data) &&
offset != 0) {
*hotdrop = 1;
return 0;
offset != 0) {
*hotdrop = 1;
return 0;
@@
-41,7
+42,7
@@
match(const struct sk_buff *skb,
memset(eui64, 0, sizeof(eui64));
if (eth_hdr(skb)->h_proto == htons(ETH_P_IPV6)) {
memset(eui64, 0, sizeof(eui64));
if (eth_hdr(skb)->h_proto == htons(ETH_P_IPV6)) {
- if (
skb->nh.ipv6h
->version == 0x6) {
+ if (
ipv6_hdr(skb)
->version == 0x6) {
memcpy(eui64, eth_hdr(skb)->h_source, 3);
memcpy(eui64 + 5, eth_hdr(skb)->h_source + 3, 3);
eui64[3] = 0xff;
memcpy(eui64, eth_hdr(skb)->h_source, 3);
memcpy(eui64 + 5, eth_hdr(skb)->h_source + 3, 3);
eui64[3] = 0xff;
@@
-49,7
+50,7
@@
match(const struct sk_buff *skb,
eui64[0] |= 0x02;
i = 0;
eui64[0] |= 0x02;
i = 0;
- while ((
skb->nh.ipv6h->saddr.s6_addr[8+
i] == eui64[i])
+ while ((
ipv6_hdr(skb)->saddr.s6_addr[8 +
i] == eui64[i])
&& (i < 8))
i++;
&& (i < 8))
i++;
@@
-61,8
+62,9
@@
match(const struct sk_buff *skb,
return 0;
}
return 0;
}
-static struct
ip6
t_match eui64_match = {
+static struct
x
t_match eui64_match = {
.name = "eui64",
.name = "eui64",
+ .family = AF_INET6,
.match = match,
.matchsize = sizeof(int),
.hooks = (1 << NF_IP6_PRE_ROUTING) | (1 << NF_IP6_LOCAL_IN) |
.match = match,
.matchsize = sizeof(int),
.hooks = (1 << NF_IP6_PRE_ROUTING) | (1 << NF_IP6_LOCAL_IN) |
@@
-72,12
+74,12
@@
static struct ip6t_match eui64_match = {
static int __init ip6t_eui64_init(void)
{
static int __init ip6t_eui64_init(void)
{
- return
ip6
t_register_match(&eui64_match);
+ return
x
t_register_match(&eui64_match);
}
static void __exit ip6t_eui64_fini(void)
{
}
static void __exit ip6t_eui64_fini(void)
{
-
ip6
t_unregister_match(&eui64_match);
+
x
t_unregister_match(&eui64_match);
}
module_init(ip6t_eui64_init);
}
module_init(ip6t_eui64_init);