diff options
author | Felix Fietkau <nbd@openwrt.org> | 2015-01-24 20:02:02 +0000 |
---|---|---|
committer | Felix Fietkau <nbd@openwrt.org> | 2015-01-24 20:02:02 +0000 |
commit | cac0cf6daa5df1faed5bc0f7fc764506e93bace0 (patch) | |
tree | da5a1596ae9201d3f99bb59ec8db0758aa27b03e /target/linux/generic/patches-3.3/604-netfilter_conntrack_flush.patch | |
parent | 67ad5ff2734551cf9548814b480a0bc5bacf7f1b (diff) | |
download | master-187ad058-cac0cf6daa5df1faed5bc0f7fc764506e93bace0.tar.gz master-187ad058-cac0cf6daa5df1faed5bc0f7fc764506e93bace0.tar.bz2 master-187ad058-cac0cf6daa5df1faed5bc0f7fc764506e93bace0.zip |
kernel: remove linux 3.3 patches and config
Signed-off-by: Felix Fietkau <nbd@openwrt.org>
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@44109 3c298f89-4303-0410-b956-a3cf2f4a3e73
Diffstat (limited to 'target/linux/generic/patches-3.3/604-netfilter_conntrack_flush.patch')
-rw-r--r-- | target/linux/generic/patches-3.3/604-netfilter_conntrack_flush.patch | 86 |
1 files changed, 0 insertions, 86 deletions
diff --git a/target/linux/generic/patches-3.3/604-netfilter_conntrack_flush.patch b/target/linux/generic/patches-3.3/604-netfilter_conntrack_flush.patch deleted file mode 100644 index a17ba1cf80..0000000000 --- a/target/linux/generic/patches-3.3/604-netfilter_conntrack_flush.patch +++ /dev/null @@ -1,86 +0,0 @@ ---- a/net/netfilter/nf_conntrack_standalone.c -+++ b/net/netfilter/nf_conntrack_standalone.c -@@ -16,6 +16,7 @@ - #include <linux/percpu.h> - #include <linux/netdevice.h> - #include <linux/security.h> -+#include <linux/inet.h> - #include <net/net_namespace.h> - #ifdef CONFIG_SYSCTL - #include <linux/sysctl.h> -@@ -267,10 +268,66 @@ static int ct_open(struct inode *inode, - sizeof(struct ct_iter_state)); - } - -+struct kill_request { -+ u16 family; -+ union nf_inet_addr addr; -+}; -+ -+static int kill_matching(struct nf_conn *i, void *data) -+{ -+ struct kill_request *kr = data; -+ struct nf_conntrack_tuple *t1 = &i->tuplehash[IP_CT_DIR_ORIGINAL].tuple; -+ struct nf_conntrack_tuple *t2 = &i->tuplehash[IP_CT_DIR_REPLY].tuple; -+ -+ if (!kr->family) -+ return 1; -+ -+ if (t1->src.l3num != kr->family) -+ return 0; -+ -+ return (nf_inet_addr_cmp(&kr->addr, &t1->src.u3) || -+ nf_inet_addr_cmp(&kr->addr, &t1->dst.u3) || -+ nf_inet_addr_cmp(&kr->addr, &t2->src.u3) || -+ nf_inet_addr_cmp(&kr->addr, &t2->dst.u3)); -+} -+ -+static ssize_t ct_file_write(struct file *file, const char __user *buf, -+ size_t count, loff_t *ppos) -+{ -+ struct seq_file *seq = file->private_data; -+ struct net *net = seq_file_net(seq); -+ struct kill_request kr = { }; -+ char req[INET6_ADDRSTRLEN] = { }; -+ -+ if (count == 0) -+ return 0; -+ -+ if (count >= INET6_ADDRSTRLEN) -+ count = INET6_ADDRSTRLEN - 1; -+ -+ if (copy_from_user(req, buf, count)) -+ return -EFAULT; -+ -+ if (strnchr(req, count, ':')) { -+ kr.family = AF_INET6; -+ if (!in6_pton(req, count, (void *)&kr.addr, '\n', NULL)) -+ return -EINVAL; -+ } else if (strnchr(req, count, '.')) { -+ kr.family = AF_INET; -+ if (!in4_pton(req, count, (void *)&kr.addr, '\n', NULL)) -+ return -EINVAL; -+ } -+ -+ nf_ct_iterate_cleanup(net, kill_matching, &kr); -+ -+ return count; -+} -+ - static const struct file_operations ct_file_ops = { - .owner = THIS_MODULE, - .open = ct_open, - .read = seq_read, -+ .write = ct_file_write, - .llseek = seq_lseek, - .release = seq_release_net, - }; -@@ -372,7 +429,7 @@ static int nf_conntrack_standalone_init_ - { - struct proc_dir_entry *pde; - -- pde = proc_net_fops_create(net, "nf_conntrack", 0440, &ct_file_ops); -+ pde = proc_net_fops_create(net, "nf_conntrack", 0660, &ct_file_ops); - if (!pde) - goto out_nf_conntrack; - |