68 lines
2.3 KiB
Diff
68 lines
2.3 KiB
Diff
|
parent 5f5e497db1f0810ce50bc8807836312c75511079 (v6.10-9-g5f5e497)
|
||
|
commit b2d4e4b4e6c48dc0d53eeab3b52ce56f01a29397
|
||
|
Author: Jan Engelhardt <jengelh@medozas.de>
|
||
|
Date: Sat Dec 31 02:22:10 2011 +0100
|
||
|
|
||
|
kernel 3.2 support
|
||
|
---
|
||
|
kernel/net/netfilter/ipset/ip_set_getport.c | 6 ++++++
|
||
|
kernel/net/netfilter/ipset/ip_set_hash_ip.c | 2 +-
|
||
|
kernel/net/netfilter/ipset/ip_set_hash_net.c | 2 +-
|
||
|
3 files changed, 8 insertions(+), 2 deletions(-)
|
||
|
|
||
|
diff --git a/kernel/net/netfilter/ipset/ip_set_getport.c b/kernel/net/netfilter/ipset/ip_set_getport.c
|
||
|
index 58ca4e1..836855f 100644
|
||
|
--- a/kernel/net/netfilter/ipset/ip_set_getport.c
|
||
|
+++ b/kernel/net/netfilter/ipset/ip_set_getport.c
|
||
|
@@ -12,6 +12,7 @@
|
||
|
#include <linux/icmp.h>
|
||
|
#include <linux/icmpv6.h>
|
||
|
#include <linux/sctp.h>
|
||
|
+#include <linux/version.h>
|
||
|
#include <linux/netfilter_ipv6/ip6_tables.h>
|
||
|
#include <net/ip.h>
|
||
|
#include <net/ipv6.h>
|
||
|
@@ -115,9 +116,14 @@ ip_set_get_ip6_port(const struct sk_buff *skb, bool src,
|
||
|
{
|
||
|
int protoff;
|
||
|
u8 nexthdr;
|
||
|
+ __be16 frag_off;
|
||
|
|
||
|
nexthdr = ipv6_hdr(skb)->nexthdr;
|
||
|
+#if LINUX_VERSION_CODE < KERNEL_VERSION(3, 3, 0)
|
||
|
protoff = ipv6_skip_exthdr(skb, sizeof(struct ipv6hdr), &nexthdr);
|
||
|
+#else
|
||
|
+ protoff = ipv6_skip_exthdr(skb, sizeof(struct ipv6hdr), &nexthdr, &frag_off);
|
||
|
+#endif
|
||
|
if (protoff < 0)
|
||
|
return false;
|
||
|
|
||
|
diff --git a/kernel/net/netfilter/ipset/ip_set_hash_ip.c b/kernel/net/netfilter/ipset/ip_set_hash_ip.c
|
||
|
index 14a8628..5139dea 100644
|
||
|
--- a/kernel/net/netfilter/ipset/ip_set_hash_ip.c
|
||
|
+++ b/kernel/net/netfilter/ipset/ip_set_hash_ip.c
|
||
|
@@ -241,7 +241,7 @@ hash_ip6_data_isnull(const struct hash_ip6_elem *elem)
|
||
|
static inline void
|
||
|
hash_ip6_data_copy(struct hash_ip6_elem *dst, const struct hash_ip6_elem *src)
|
||
|
{
|
||
|
- ipv6_addr_copy(&dst->ip.in6, &src->ip.in6);
|
||
|
+ dst->ip.in6 = src->ip.in6;
|
||
|
}
|
||
|
|
||
|
static inline void
|
||
|
diff --git a/kernel/net/netfilter/ipset/ip_set_hash_net.c b/kernel/net/netfilter/ipset/ip_set_hash_net.c
|
||
|
index 48e35ba..5a4457a 100644
|
||
|
--- a/kernel/net/netfilter/ipset/ip_set_hash_net.c
|
||
|
+++ b/kernel/net/netfilter/ipset/ip_set_hash_net.c
|
||
|
@@ -267,7 +267,7 @@ static inline void
|
||
|
hash_net6_data_copy(struct hash_net6_elem *dst,
|
||
|
const struct hash_net6_elem *src)
|
||
|
{
|
||
|
- ipv6_addr_copy(&dst->ip.in6, &src->ip.in6);
|
||
|
+ dst->ip.in6 = src->ip.in6;
|
||
|
dst->cidr = src->cidr;
|
||
|
}
|
||
|
|
||
|
--
|
||
|
# Created with git-export-patch
|