SHA256
1
0
forked from pool/ipset
ipset/kernel-3_3.diff

66 lines
2.3 KiB
Diff
Raw Normal View History

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.3 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(-)
Index: ipset-6.11/kernel/net/netfilter/ipset/ip_set_getport.c
===================================================================
--- ipset-6.11.orig/kernel/net/netfilter/ipset/ip_set_getport.c
+++ ipset-6.11/kernel/net/netfilter/ipset/ip_set_getport.c
@@ -16,6 +16,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>
@@ -119,9 +120,14 @@ ip_set_get_ip6_port(const struct sk_buff
{
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;
Index: ipset-6.11/kernel/net/netfilter/ipset/ip_set_hash_ip.c
===================================================================
--- ipset-6.11.orig/kernel/net/netfilter/ipset/ip_set_hash_ip.c
+++ ipset-6.11/kernel/net/netfilter/ipset/ip_set_hash_ip.c
@@ -241,7 +241,7 @@ hash_ip6_data_isnull(const struct hash_i
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
Index: ipset-6.11/kernel/net/netfilter/ipset/ip_set_hash_net.c
===================================================================
--- ipset-6.11.orig/kernel/net/netfilter/ipset/ip_set_hash_net.c
+++ ipset-6.11/kernel/net/netfilter/ipset/ip_set_hash_net.c
@@ -295,7 +295,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;
dst->nomatch = src->nomatch;
}