Hello community,

here is the log from the commit of package xtables-addons for openSUSE:Factory 
checked in at 2015-11-26 17:01:41
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/xtables-addons (Old)
 and      /work/SRC/openSUSE:Factory/.xtables-addons.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "xtables-addons"

Changes:
--------
--- /work/SRC/openSUSE:Factory/xtables-addons/xtables-addons.changes    
2015-10-20 00:09:07.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.xtables-addons.new/xtables-addons.changes       
2015-11-26 17:02:07.000000000 +0100
@@ -1,0 +2,6 @@
+Fri Nov 20 22:40:17 UTC 2015 - [email protected]
+
+- Update to new upstream release 2.10
+* Support for Linux 4.4
+
+-------------------------------------------------------------------

Old:
----
  xtables-addons-2.9.tar.asc
  xtables-addons-2.9.tar.xz

New:
----
  xtables-addons-2.10.tar.asc
  xtables-addons-2.10.tar.xz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ xtables-addons.spec ++++++
--- /var/tmp/diff_new_pack.5ELPzm/_old  2015-11-26 17:02:08.000000000 +0100
+++ /var/tmp/diff_new_pack.5ELPzm/_new  2015-11-26 17:02:08.000000000 +0100
@@ -17,7 +17,7 @@
 
 
 Name:           xtables-addons
-Version:        2.9
+Version:        2.10
 Release:        0
 Summary:        IP Packet Filter Administration Extensions
 License:        GPL-2.0 and GPL-2.0+
@@ -68,26 +68,26 @@
 %setup -q
 
 %build
-pushd ../;
+pushd ../
 for flavor in %flavors_to_build; do
-       cp -a "%name-%version" "%name-$flavor-%version";
-       pushd "%name-$flavor-%version/";
-       %configure --with-kbuild="/usr/src/linux-obj/%_target_cpu/$flavor";
-       make %{?_smp_mflags} V=1;
-       popd;
-done;
+       cp -a "%name-%version" "%name-$flavor-%version"
+       pushd "%name-$flavor-%version/"
+       %configure --with-kbuild="/usr/src/linux-obj/%_target_cpu/$flavor"
+       make %{?_smp_mflags} V=1
+       popd
+done
 
 %install
-b="%buildroot";
-pushd ../;
+b="%buildroot"
+pushd ../
 for flavor in %flavors_to_build; do
-       pushd "%name-$flavor-%version/";
-       make install DESTDIR="$b";
-       popd;
-done;
+       pushd "%name-$flavor-%version/"
+       make install DESTDIR="$b"
+       popd
+done
 # There is no -devel package. So no need for these files.
-find "$b/%_prefix" -iname "*.la" -delete;
-find "$b/%_libdir" -maxdepth 1 -type l -iname "*.so" -delete;
+find "$b/%_prefix" -iname "*.la" -delete
+find "$b/%_libdir" -maxdepth 1 -type l -iname "*.so" -delete
 
 %post   -p /sbin/ldconfig
 %postun -p /sbin/ldconfig

++++++ xtables-addons-2.9.tar.xz -> xtables-addons-2.10.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/xtables-addons-2.9/configure 
new/xtables-addons-2.10/configure
--- old/xtables-addons-2.9/configure    2015-10-12 16:41:15.000000000 +0200
+++ new/xtables-addons-2.10/configure   2015-11-20 23:35:53.000000000 +0100
@@ -1,6 +1,6 @@
 #! /bin/sh
 # Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.69 for xtables-addons 2.9.
+# Generated by GNU Autoconf 2.69 for xtables-addons 2.10.
 #
 #
 # Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc.
@@ -587,8 +587,8 @@
 # Identity of this package.
 PACKAGE_NAME='xtables-addons'
 PACKAGE_TARNAME='xtables-addons'
-PACKAGE_VERSION='2.9'
-PACKAGE_STRING='xtables-addons 2.9'
+PACKAGE_VERSION='2.10'
+PACKAGE_STRING='xtables-addons 2.10'
 PACKAGE_BUGREPORT=''
 PACKAGE_URL=''
 
@@ -1325,7 +1325,7 @@
   # Omit some internal or obsolete options to make the list less imposing.
   # This message is too long to be a string in the A/UX 3.1 sh.
   cat <<_ACEOF
-\`configure' configures xtables-addons 2.9 to adapt to many kinds of systems.
+\`configure' configures xtables-addons 2.10 to adapt to many kinds of systems.
 
 Usage: $0 [OPTION]... [VAR=VALUE]...
 
@@ -1395,7 +1395,7 @@
 
 if test -n "$ac_init_help"; then
   case $ac_init_help in
-     short | recursive ) echo "Configuration of xtables-addons 2.9:";;
+     short | recursive ) echo "Configuration of xtables-addons 2.10:";;
    esac
   cat <<\_ACEOF
 
@@ -1519,7 +1519,7 @@
 test -n "$ac_init_help" && exit $ac_status
 if $ac_init_version; then
   cat <<\_ACEOF
-xtables-addons configure 2.9
+xtables-addons configure 2.10
 generated by GNU Autoconf 2.69
 
 Copyright (C) 2012 Free Software Foundation, Inc.
@@ -1884,7 +1884,7 @@
 This file contains any messages produced by compilers while
 running configure, to aid debugging if configure makes a mistake.
 
-It was created by xtables-addons $as_me 2.9, which was
+It was created by xtables-addons $as_me 2.10, which was
 generated by GNU Autoconf 2.69.  Invocation command line was
 
   $ $0 $@
@@ -2750,7 +2750,7 @@
 
 # Define the identity of the package.
  PACKAGE='xtables-addons'
- VERSION='2.9'
+ VERSION='2.10'
 
 
 cat >>confdefs.h <<_ACEOF
@@ -12957,7 +12957,7 @@
 # report actual input values of CONFIG_FILES etc. instead of their
 # values after options handling.
 ac_log="
-This file was extended by xtables-addons $as_me 2.9, which was
+This file was extended by xtables-addons $as_me 2.10, which was
 generated by GNU Autoconf 2.69.  Invocation command line was
 
   CONFIG_FILES    = $CONFIG_FILES
@@ -13023,7 +13023,7 @@
 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; 
s/[\\""\`\$]/\\\\&/g'`"
 ac_cs_version="\\
-xtables-addons config.status 2.9
+xtables-addons config.status 2.10
 configured by $0, generated by GNU Autoconf 2.69,
   with options \\"\$ac_cs_config\\"
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/xtables-addons-2.9/configure.ac 
new/xtables-addons-2.10/configure.ac
--- old/xtables-addons-2.9/configure.ac 2015-10-12 16:27:59.000000000 +0200
+++ new/xtables-addons-2.10/configure.ac        2015-11-20 23:30:33.000000000 
+0100
@@ -1,4 +1,4 @@
-AC_INIT([xtables-addons], [2.9])
+AC_INIT([xtables-addons], [2.10])
 AC_CONFIG_AUX_DIR([build-aux])
 AC_CONFIG_HEADERS([config.h])
 AC_CONFIG_MACRO_DIR([m4])
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/xtables-addons-2.9/doc/changelog.txt 
new/xtables-addons-2.10/doc/changelog.txt
--- old/xtables-addons-2.9/doc/changelog.txt    2015-10-12 16:27:59.000000000 
+0200
+++ new/xtables-addons-2.10/doc/changelog.txt   2015-11-20 23:30:33.000000000 
+0100
@@ -3,6 +3,14 @@
 ====
 
 
+v2.10 (2015-11-20)
+==================
+Enhancements:
+- Support for Linux 4.4
+Fixes:
+- xt_ACCOUNT: call free_page with the right amount of pages
+
+
 v2.9 (2015-10-12)
 =================
 Enhancements:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/xtables-addons-2.9/extensions/ACCOUNT/xt_ACCOUNT.c 
new/xtables-addons-2.10/extensions/ACCOUNT/xt_ACCOUNT.c
--- old/xtables-addons-2.9/extensions/ACCOUNT/xt_ACCOUNT.c      2015-10-12 
16:27:59.000000000 +0200
+++ new/xtables-addons-2.10/extensions/ACCOUNT/xt_ACCOUNT.c     2015-11-20 
23:30:33.000000000 +0100
@@ -115,10 +115,8 @@
        // Don't use get_zeroed_page until it's fixed in the kernel.
        // get_zeroed_page(GFP_ATOMIC)
        void *mem = (void *)__get_free_pages(GFP_ATOMIC, 2);
-       if (mem) {
+       if (mem != NULL)
                memset(mem, 0,  2 *PAGE_SIZE);
-       }
-
        return mem;
 }
 
@@ -139,11 +137,9 @@
        if (depth == 1) {
                struct ipt_acc_mask_16 *mask_16 = data;
                unsigned int b;
-               for (b = 0; b <= 255; b++) {
-                       if (mask_16->mask_24[b]) {
-                               free_page((unsigned long)mask_16->mask_24[b]);
-                       }
-               }
+               for (b = 0; b <= 255; ++b)
+                       if (mask_16->mask_24[b])
+                               free_pages((unsigned long)mask_16->mask_24[b], 
2);
                free_pages((unsigned long)data, 2);
                return;
        }
@@ -156,12 +152,10 @@
                                struct ipt_acc_mask_16 *mask_16 =
                                        ((struct ipt_acc_mask_8 
*)data)->mask_16[a];
 
-                               for (b = 0; b <= 255; b++) {
-                                       if (mask_16->mask_24[b]) {
-                                               free_page((unsigned 
long)mask_16->mask_24[b]);
-                                       }
-                               }
-                               free_page((unsigned long)mask_16);
+                               for (b = 0; b <= 255; ++b)
+                                       if (mask_16->mask_24[b])
+                                               free_pages((unsigned 
long)mask_16->mask_24[b], 2);
+                               free_pages((unsigned long)mask_16, 2);
                        }
                }
                free_pages((unsigned long)data, 2);
@@ -631,18 +625,18 @@
                unsigned int b;
 
                for (b = 0; b <= 255; b++) {
-                       if (src_16->mask_24[b]) {
-                               if ((network_16->mask_24[b] =
-                                   ipt_acc_zalloc_page()) == NULL) {
-                                       printk("ACCOUNT: out of memory during 
copy of 16 bit "
-                                               "network in 
ipt_acc_handle_prepare_read()\n");
-                                       ipt_acc_data_free(dest->data, depth);
-                                       return -1;
-                               }
-
-                               memcpy(network_16->mask_24[b], 
src_16->mask_24[b],
-                                       sizeof(struct ipt_acc_mask_24));
+                       if (src_16->mask_24[b] == NULL)
+                               continue;
+                       if ((network_16->mask_24[b] =
+                           ipt_acc_zalloc_page()) == NULL) {
+                               printk("ACCOUNT: out of memory during copy of 
16 bit "
+                                       "network in 
ipt_acc_handle_prepare_read()\n");
+                               ipt_acc_data_free(dest->data, depth);
+                               return -1;
                        }
+
+                       memcpy(network_16->mask_24[b], src_16->mask_24[b],
+                               sizeof(struct ipt_acc_mask_24));
                }
        } else if (depth == 2) {
                struct ipt_acc_mask_8 *src_8 =
@@ -652,35 +646,35 @@
                unsigned int a, b;
 
                for (a = 0; a <= 255; a++) {
-                       if (src_8->mask_16[a]) {
-                               if ((network_8->mask_16[a] =
+                       if (src_8->mask_16[a] == NULL)
+                               continue;
+                       if ((network_8->mask_16[a] =
+                           ipt_acc_zalloc_page()) == NULL) {
+                               printk("ACCOUNT: out of memory during copy of 
24 bit network"
+                                       " in ipt_acc_handle_prepare_read()\n");
+                               ipt_acc_data_free(dest->data, depth);
+                               return -1;
+                       }
+
+                       memcpy(network_8->mask_16[a], src_8->mask_16[a],
+                               sizeof(struct ipt_acc_mask_16));
+
+                       src_16 = src_8->mask_16[a];
+                       network_16 = network_8->mask_16[a];
+
+                       for (b = 0; b <= 255; b++) {
+                               if (src_16->mask_24[b] == NULL)
+                                       continue;
+                               if ((network_16->mask_24[b] =
                                    ipt_acc_zalloc_page()) == NULL) {
-                                       printk("ACCOUNT: out of memory during 
copy of 24 bit network"
-                                               " in 
ipt_acc_handle_prepare_read()\n");
+                                       printk("ACCOUNT: out of memory during 
copy of 16 bit"
+                                               " network in 
ipt_acc_handle_prepare_read()\n");
                                        ipt_acc_data_free(dest->data, depth);
                                        return -1;
                                }
 
-                               memcpy(network_8->mask_16[a], src_8->mask_16[a],
-                                       sizeof(struct ipt_acc_mask_16));
-
-                               src_16 = src_8->mask_16[a];
-                               network_16 = network_8->mask_16[a];
-
-                               for (b = 0; b <= 255; b++) {
-                                       if (src_16->mask_24[b]) {
-                                               if ((network_16->mask_24[b] =
-                                                   ipt_acc_zalloc_page()) == 
NULL) {
-                                                       printk("ACCOUNT: out of 
memory during copy of 16 bit"
-                                                               " network in 
ipt_acc_handle_prepare_read()\n");
-                                                       
ipt_acc_data_free(dest->data, depth);
-                                                       return -1;
-                                               }
-
-                                               memcpy(network_16->mask_24[b], 
src_16->mask_24[b],
-                                                       sizeof(struct 
ipt_acc_mask_24));
-                                       }
-                               }
+                               memcpy(network_16->mask_24[b], 
src_16->mask_24[b],
+                                       sizeof(struct ipt_acc_mask_24));
                        }
                }
        }
@@ -742,25 +736,26 @@
        unsigned int i;
 
        for (i = 0; i <= 255; i++) {
-               if (data->ip[i].src_packets || data->ip[i].dst_packets) {
-                       handle_ip.ip = net_ip | net_OR_mask | i;
-
-                       handle_ip.src_packets = data->ip[i].src_packets;
-                       handle_ip.src_bytes = data->ip[i].src_bytes;
-                       handle_ip.dst_packets = data->ip[i].dst_packets;
-                       handle_ip.dst_bytes = data->ip[i].dst_bytes;
-
-                       /* Temporary buffer full? Flush to userspace */
-                       if (*tmpbuf_pos + handle_ip_size >= PAGE_SIZE) {
-                               if (copy_to_user(to_user + *to_user_pos, 
ipt_acc_tmpbuf,
-                                   *tmpbuf_pos))
-                                       return -EFAULT;
-                               *to_user_pos = *to_user_pos + *tmpbuf_pos;
-                               *tmpbuf_pos = 0;
-                       }
-                       memcpy(ipt_acc_tmpbuf + *tmpbuf_pos, &handle_ip, 
handle_ip_size);
-                       *tmpbuf_pos += handle_ip_size;
+               if (data->ip[i].src_packets == 0 &&
+                   data->ip[i].dst_packets == 0)
+                       continue;
+
+               handle_ip.ip = net_ip | net_OR_mask | i;
+               handle_ip.src_packets = data->ip[i].src_packets;
+               handle_ip.src_bytes = data->ip[i].src_bytes;
+               handle_ip.dst_packets = data->ip[i].dst_packets;
+               handle_ip.dst_bytes = data->ip[i].dst_bytes;
+
+               /* Temporary buffer full? Flush to userspace */
+               if (*tmpbuf_pos + handle_ip_size >= PAGE_SIZE) {
+                       if (copy_to_user(to_user + *to_user_pos, ipt_acc_tmpbuf,
+                           *tmpbuf_pos))
+                               return -EFAULT;
+                       *to_user_pos = *to_user_pos + *tmpbuf_pos;
+                       *tmpbuf_pos = 0;
                }
+               memcpy(ipt_acc_tmpbuf + *tmpbuf_pos, &handle_ip, 
handle_ip_size);
+               *tmpbuf_pos += handle_ip_size;
        }
 
        return 0;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/xtables-addons-2.9/extensions/compat_xtables.h 
new/xtables-addons-2.10/extensions/compat_xtables.h
--- old/xtables-addons-2.9/extensions/compat_xtables.h  2015-10-12 
16:27:59.000000000 +0200
+++ new/xtables-addons-2.10/extensions/compat_xtables.h 2015-11-20 
23:30:33.000000000 +0100
@@ -73,4 +73,20 @@
 }
 #endif
 
+#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 4, 0)
+#      define ip6_local_out(xnet, xsk, xskb) ip6_local_out(xskb)
+#      define ip6_route_me_harder(xnet, xskb) ip6_route_me_harder(xskb)
+#      define ip_local_out(xnet, xsk, xskb) ip_local_out(xskb)
+#      define ip_route_me_harder(xnet, xskb, xaddrtype) 
ip_route_me_harder((xskb), (xaddrtype))
+#endif
+
+static inline struct net *par_net(const struct xt_action_param *par)
+{
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 4, 0)
+       return par->net;
+#else
+       return dev_net((par->in != NULL) ? par->in : par->out);
+#endif
+}
+
 #endif /* _XTABLES_COMPAT_H */
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/xtables-addons-2.9/extensions/xt_DELUDE.c 
new/xtables-addons-2.10/extensions/xt_DELUDE.c
--- old/xtables-addons-2.9/extensions/xt_DELUDE.c       2015-10-12 
16:27:59.000000000 +0200
+++ new/xtables-addons-2.10/extensions/xt_DELUDE.c      2015-11-20 
23:30:33.000000000 +0100
@@ -25,7 +25,8 @@
 #include "compat_xtables.h"
 #define PFX KBUILD_MODNAME ": "
 
-static void delude_send_reset(struct sk_buff *oldskb, unsigned int hook)
+static void delude_send_reset(struct net *net, struct sk_buff *oldskb,
+    unsigned int hook)
 {
        struct tcphdr _otcph, *tcph;
        const struct tcphdr *oth;
@@ -121,7 +122,7 @@
        /* ip_route_me_harder expects skb->dst to be set */
        skb_dst_set(nskb, dst_clone(skb_dst(oldskb)));
 
-       if (ip_route_me_harder(nskb, addr_type))
+       if (ip_route_me_harder(net, nskb, addr_type))
                goto free_nskb;
        else
                niph = ip_hdr(nskb);
@@ -135,7 +136,7 @@
 
        nf_ct_attach(nskb, oldskb);
 
-       ip_local_out(nskb);
+       ip_local_out(net, nskb->sk, nskb);
        return;
 
  free_nskb:
@@ -150,7 +151,7 @@
         * a problem, as that is supported since Linux 2.6.35. But since we do 
not
         * actually want to have a connection open, we are still going to drop 
it.
         */
-       delude_send_reset(skb, par->hooknum);
+       delude_send_reset(par_net(par), skb, par->hooknum);
        return NF_DROP;
 }
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/xtables-addons-2.9/extensions/xt_ECHO.c 
new/xtables-addons-2.10/extensions/xt_ECHO.c
--- old/xtables-addons-2.9/extensions/xt_ECHO.c 2015-10-12 16:27:59.000000000 
+0200
+++ new/xtables-addons-2.10/extensions/xt_ECHO.c        2015-11-20 
23:30:33.000000000 +0100
@@ -112,7 +112,7 @@
                goto free_nskb;
 
        nf_ct_attach(newskb, oldskb);
-       ip6_local_out(newskb);
+       ip6_local_out(par_net(par), newskb->sk, newskb);
        return NF_DROP;
 
  free_nskb:
@@ -190,7 +190,7 @@
        /* ip_route_me_harder expects the skb's dst to be set */
        skb_dst_set(newskb, dst_clone(skb_dst(oldskb)));
 
-       if (ip_route_me_harder(newskb, RTN_UNSPEC) != 0)
+       if (ip_route_me_harder(par_net(par), newskb, RTN_UNSPEC) != 0)
                goto free_nskb;
 
        newip->ttl = ip4_dst_hoplimit(skb_dst(newskb));
@@ -201,7 +201,7 @@
                goto free_nskb;
 
        nf_ct_attach(newskb, oldskb);
-       ip_local_out(newskb);
+       ip_local_out(par_net(par), newskb->sk, newskb);
        return NF_DROP;
 
  free_nskb:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/xtables-addons-2.9/extensions/xt_TARPIT.c 
new/xtables-addons-2.10/extensions/xt_TARPIT.c
--- old/xtables-addons-2.9/extensions/xt_TARPIT.c       2015-10-12 
16:27:59.000000000 +0200
+++ new/xtables-addons-2.10/extensions/xt_TARPIT.c      2015-11-20 
23:30:33.000000000 +0100
@@ -170,8 +170,8 @@
        return true;
 }
 
-static void tarpit_tcp4(struct sk_buff *oldskb, unsigned int hook,
-    unsigned int mode)
+static void tarpit_tcp4(struct net *net, struct sk_buff *oldskb,
+    unsigned int hook, unsigned int mode)
 {
        struct tcphdr _otcph, *tcph;
        const struct tcphdr *oth;
@@ -261,7 +261,7 @@
 #endif
                addr_type = RTN_LOCAL;
 
-       if (ip_route_me_harder(nskb, addr_type))
+       if (ip_route_me_harder(net, nskb, addr_type))
                goto free_nskb;
        else
                niph = ip_hdr(nskb);
@@ -284,8 +284,11 @@
 
        nf_ct_attach(nskb, oldskb);
 
-#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 1, 0)
-       NF_HOOK(NFPROTO_IPV4, NF_INET_LOCAL_OUT, NULL, nskb, NULL,
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 4, 0)
+       NF_HOOK(NFPROTO_IPV4, NF_INET_LOCAL_OUT, net, nskb->sk, nskb, NULL,
+               skb_dst(nskb)->dev, dst_output);
+#elif LINUX_VERSION_CODE >= KERNEL_VERSION(4, 1, 0)
+       NF_HOOK(NFPROTO_IPV4, NF_INET_LOCAL_OUT, nskb->sk, nskb, NULL,
                skb_dst(nskb)->dev, dst_output_sk);
 #else
        NF_HOOK(NFPROTO_IPV4, NF_INET_LOCAL_OUT, nskb, NULL,
@@ -298,8 +301,8 @@
 }
 
 #ifdef WITH_IPV6
-static void tarpit_tcp6(struct sk_buff *oldskb, unsigned int hook,
-    unsigned int mode)
+static void tarpit_tcp6(struct net *net, struct sk_buff *oldskb,
+    unsigned int hook, unsigned int mode)
 {
        struct sk_buff *nskb;
        struct tcphdr *tcph, oth;
@@ -397,15 +400,18 @@
                      IPPROTO_TCP,
                      csum_partial(tcph, sizeof(struct tcphdr), 0));
 
-       if (ip6_route_me_harder(nskb))
+       if (ip6_route_me_harder(net, nskb))
                goto free_nskb;
 
        nskb->ip_summed = CHECKSUM_NONE;
 
        nf_ct_attach(nskb, oldskb);
 
-#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 1, 0)
-       NF_HOOK(NFPROTO_IPV6, NF_INET_LOCAL_OUT, NULL, nskb, NULL,
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 4, 0)
+       NF_HOOK(NFPROTO_IPV6, NF_INET_LOCAL_OUT, net, nskb->sk, nskb, NULL,
+               skb_dst(nskb)->dev, dst_output);
+#elif LINUX_VERSION_CODE >= KERNEL_VERSION(4, 1, 0)
+       NF_HOOK(NFPROTO_IPV6, NF_INET_LOCAL_OUT, nskb->sk, nskb, NULL,
                skb_dst(nskb)->dev, dst_output_sk);
 #else
        NF_HOOK(NFPROTO_IPV6, NF_INET_LOCAL_OUT, nskb, NULL,
@@ -449,7 +455,7 @@
        if (iph->frag_off & htons(IP_OFFSET))
                return NF_DROP;
 
-       tarpit_tcp4(skb, par->hooknum, info->variant);
+       tarpit_tcp4(par_net(par), skb, par->hooknum, info->variant);
        return NF_DROP;
 }
 
@@ -491,7 +497,7 @@
                return NF_DROP;
        }
 
-       tarpit_tcp6(skb, par->hooknum, info->variant);
+       tarpit_tcp6(par_net(par), skb, par->hooknum, info->variant);
        return NF_DROP;
 }
 #endif
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/xtables-addons-2.9/extensions/xt_quota2.c 
new/xtables-addons-2.10/extensions/xt_quota2.c
--- old/xtables-addons-2.9/extensions/xt_quota2.c       2015-10-12 
16:27:59.000000000 +0200
+++ new/xtables-addons-2.10/extensions/xt_quota2.c      2015-11-20 
23:30:33.000000000 +0100
@@ -64,7 +64,6 @@
 static int quota_proc_show(struct seq_file *m, void *data)
 {
        struct xt_quota_counter *e = m->private;
-       int ret;
 
        spin_lock_bh(&e->lock);
        seq_printf(m, "%llu\n", e->quota);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/xtables-addons-2.9/xtables-addons.8.in 
new/xtables-addons-2.10/xtables-addons.8.in
--- old/xtables-addons-2.9/xtables-addons.8.in  2015-10-12 16:27:59.000000000 
+0200
+++ new/xtables-addons-2.10/xtables-addons.8.in 2015-11-20 23:30:33.000000000 
+0100
@@ -1,4 +1,4 @@
-.TH xtables-addons 8 "" "" "v2.9 (2015-10-12)"
+.TH xtables-addons 8 "" "" "v2.10 (2015-11-20)"
 .SH Name
 Xtables-addons \(em additional extensions for iptables, ip6tables, etc.
 .SH Targets


Reply via email to