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
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
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
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:
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: