]> git.ipfire.org Git - thirdparty/xtables-addons.git/commitdiff
xt_TARPIT: support for Linux 4.1
authorAlexander Petrenas <zeracles@zeracles.net.ru>
Tue, 23 Jun 2015 10:44:50 +0000 (13:44 +0300)
committerJan Engelhardt <jengelh@inai.de>
Mon, 6 Jul 2015 03:59:21 +0000 (05:59 +0200)
configure.ac
doc/changelog.txt
extensions/xt_DELUDE.c
extensions/xt_TARPIT.c

index de3fec4ce8c2929eeeb27af968d06cda4af326f5..f16bb16307a1fcfc36acff7b6953da2f5c8cbda3 100644 (file)
@@ -63,8 +63,10 @@ if test -n "$kbuilddir"; then
                echo "WARNING: Version detection did not succeed. Continue at own luck.";
        else
                echo "$kmajor.$kminor.$kmicro.$kstable in $kbuilddir";
-               if test "$kmajor" -gt 3 -o "$kmajor" -eq 3 -a "$kminor" -gt 17; then
+               if test "$kmajor" -gt 4 -o "$kmajor" -eq 4 -a "$kminor" -gt 1; then
                        echo "WARNING: That kernel version is not officially supported yet. Continue at own luck.";
+               elif test "$kmajor" -eq 4 -a "$kminor" -le 1; then
+                       :;
                elif test "$kmajor" -eq 3 -a "$kminor" -ge 7; then
                        :;
                else
index db394ebc13ed064b843b214a45771e2645fc32ed..b6feed4faad0062cf8690549fcd00a491cca876e 100644 (file)
@@ -1,6 +1,8 @@
 
 HEAD
 ====
+Enhancements:
+- Support for Linux up to 4.1
 
 
 v2.6 (2014-09-29)
index 39d92e3a99569f1811dfbebbc95e5451c9f2a603..1568252a53223012ebf3d2d43e364fe9e47eda20 100644 (file)
@@ -106,8 +106,13 @@ static void delude_send_reset(struct sk_buff *oldskb, unsigned int hook)
 
        addr_type = RTN_UNSPEC;
 #ifdef CONFIG_BRIDGE_NETFILTER
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 1, 0)
+       if (hook != NF_INET_FORWARD || (nskb->nf_bridge != NULL &&
+           nskb->nf_bridge->physoutdev))
+#else
        if (hook != NF_INET_FORWARD || (nskb->nf_bridge != NULL &&
            nskb->nf_bridge->mask & BRNF_BRIDGED))
+#endif
 #else
        if (hook != NF_INET_FORWARD)
 #endif
index dbfb8343354e6b99c2813af400789a76c14fc762..67986ad630117395d2092c6864dfb694211defcb 100644 (file)
@@ -249,8 +249,13 @@ static void tarpit_tcp4(struct sk_buff *oldskb, unsigned int hook,
                niph->id = ~oldhdr->id + 1;
 
 #ifdef CONFIG_BRIDGE_NETFILTER
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 1, 0)
+       if (hook != NF_INET_FORWARD || (nskb->nf_bridge != NULL &&
+           nskb->nf_bridge->physoutdev != NULL))
+#else
        if (hook != NF_INET_FORWARD || (nskb->nf_bridge != NULL &&
            nskb->nf_bridge->mask & BRNF_BRIDGED))
+#endif
 #else
        if (hook != NF_INET_FORWARD)
 #endif
@@ -279,8 +284,13 @@ static void tarpit_tcp4(struct sk_buff *oldskb, unsigned int hook,
 
        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,
+               skb_dst(nskb)->dev, dst_output_sk);
+#else
        NF_HOOK(NFPROTO_IPV4, NF_INET_LOCAL_OUT, nskb, NULL,
                skb_dst(nskb)->dev, dst_output);
+#endif
        return;
 
  free_nskb:
@@ -394,8 +404,13 @@ static void tarpit_tcp6(struct sk_buff *oldskb, unsigned int hook,
 
        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,
+               skb_dst(nskb)->dev, dst_output_sk);
+#else
        NF_HOOK(NFPROTO_IPV6, NF_INET_LOCAL_OUT, nskb, NULL,
                skb_dst(nskb)->dev, dst_output);
+#endif
        return;
 
  free_nskb: