netfilter: xt_recent: remove old proc directory
authorJan Engelhardt <jengelh@medozas.de>
Mon, 1 Mar 2010 10:55:33 +0000 (11:55 +0100)
committerPatrick McHardy <kaber@trash.net>
Wed, 17 Mar 2010 14:53:11 +0000 (15:53 +0100)
The compat option was introduced in October 2008.

Signed-off-by: Jan Engelhardt <jengelh@medozas.de>
Documentation/feature-removal-schedule.txt
net/netfilter/Kconfig
net/netfilter/xt_recent.c

index fa327f673a321e11ebe499c91cfd2e8e5e43786a..ea227e3f528b4194cf9a8b60cf232a76da741a16 100644 (file)
@@ -241,16 +241,6 @@ Who:       Thomas Gleixner <tglx@linutronix.de>
 
 ---------------------------
 
-What (Why):
-       - xt_recent: the old ipt_recent proc dir
-         (superseded by /proc/net/xt_recent)
-
-When:  January 2009 or Linux 2.7.0, whichever comes first
-Why:   Superseded by newer revisions or modules
-Who:   Jan Engelhardt <jengelh@medozas.de>
-
----------------------------
-
 What:  GPIO autorequest on gpio_direction_{input,output}() in gpiolib
 When:  February 2010
 Why:   All callers should use explicit gpio_request()/gpio_free().
index 8550dfde7804771657627fb77dce0fca61d9096a..6ac28ef9300cb507e8bc1c1c548c968df153d070 100644 (file)
@@ -859,13 +859,6 @@ config NETFILTER_XT_MATCH_RECENT
        Short options are available by using 'iptables -m recent -h'
        Official Website: <http://snowman.net/projects/ipt_recent/>
 
-config NETFILTER_XT_MATCH_RECENT_PROC_COMPAT
-       bool 'Enable obsolete /proc/net/ipt_recent'
-       depends on NETFILTER_XT_MATCH_RECENT && PROC_FS
-       ---help---
-       This option enables the old /proc/net/ipt_recent interface,
-       which has been obsoleted by /proc/net/xt_recent.
-
 config NETFILTER_XT_MATCH_SCTP
        tristate  '"sctp" protocol match support (EXPERIMENTAL)'
        depends on EXPERIMENTAL
index bcabfbc1cd057256d32f85e3c2d4769e8c368d86..2ff8aae84a384cb4532fc4ff55c7d9930e0b0dff 100644 (file)
@@ -83,9 +83,6 @@ struct recent_net {
        struct list_head        tables;
 #ifdef CONFIG_PROC_FS
        struct proc_dir_entry   *xt_recent;
-#ifdef CONFIG_NETFILTER_XT_MATCH_RECENT_PROC_COMPAT
-       struct proc_dir_entry   *ipt_recent;
-#endif
 #endif
 };
 
@@ -342,17 +339,6 @@ static bool recent_mt_check(const struct xt_mtchk_param *par)
        }
        pde->uid = ip_list_uid;
        pde->gid = ip_list_gid;
-#ifdef CONFIG_NETFILTER_XT_MATCH_RECENT_PROC_COMPAT
-       pde = proc_create_data(t->name, ip_list_perms, recent_net->ipt_recent,
-                     &recent_old_fops, t);
-       if (pde == NULL) {
-               remove_proc_entry(t->name, recent_net->xt_recent);
-               kfree(t);
-               goto out;
-       }
-       pde->uid = ip_list_uid;
-       pde->gid = ip_list_gid;
-#endif
 #endif
        spin_lock_bh(&recent_lock);
        list_add_tail(&t->list, &recent_net->tables);
@@ -376,9 +362,6 @@ static void recent_mt_destroy(const struct xt_mtdtor_param *par)
                list_del(&t->list);
                spin_unlock_bh(&recent_lock);
 #ifdef CONFIG_PROC_FS
-#ifdef CONFIG_NETFILTER_XT_MATCH_RECENT_PROC_COMPAT
-               remove_proc_entry(t->name, recent_net->ipt_recent);
-#endif
                remove_proc_entry(t->name, recent_net->xt_recent);
 #endif
                recent_table_flush(t);
@@ -470,84 +453,6 @@ static int recent_seq_open(struct inode *inode, struct file *file)
        return 0;
 }
 
-#ifdef CONFIG_NETFILTER_XT_MATCH_RECENT_PROC_COMPAT
-static int recent_old_seq_open(struct inode *inode, struct file *filp)
-{
-       static bool warned_of_old;
-
-       if (unlikely(!warned_of_old)) {
-               printk(KERN_INFO KBUILD_MODNAME ": Use of /proc/net/ipt_recent"
-                      " is deprecated; use /proc/net/xt_recent.\n");
-               warned_of_old = true;
-       }
-       return recent_seq_open(inode, filp);
-}
-
-static ssize_t recent_old_proc_write(struct file *file,
-                                    const char __user *input,
-                                    size_t size, loff_t *loff)
-{
-       const struct proc_dir_entry *pde = PDE(file->f_path.dentry->d_inode);
-       struct recent_table *t = pde->data;
-       struct recent_entry *e;
-       char buf[sizeof("+255.255.255.255")], *c = buf;
-       union nf_inet_addr addr = {};
-       int add;
-
-       if (size > sizeof(buf))
-               size = sizeof(buf);
-       if (copy_from_user(buf, input, size))
-               return -EFAULT;
-
-       c = skip_spaces(c);
-
-       if (size - (c - buf) < 5)
-               return c - buf;
-       if (!strncmp(c, "clear", 5)) {
-               c += 5;
-               spin_lock_bh(&recent_lock);
-               recent_table_flush(t);
-               spin_unlock_bh(&recent_lock);
-               return c - buf;
-       }
-
-       switch (*c) {
-       case '-':
-               add = 0;
-               c++;
-               break;
-       case '+':
-               c++;
-       default:
-               add = 1;
-               break;
-       }
-       addr.ip = in_aton(c);
-
-       spin_lock_bh(&recent_lock);
-       e = recent_entry_lookup(t, &addr, NFPROTO_IPV4, 0);
-       if (e == NULL) {
-               if (add)
-                       recent_entry_init(t, &addr, NFPROTO_IPV4, 0);
-       } else {
-               if (add)
-                       recent_entry_update(t, e);
-               else
-                       recent_entry_remove(t, e);
-       }
-       spin_unlock_bh(&recent_lock);
-       return size;
-}
-
-static const struct file_operations recent_old_fops = {
-       .open           = recent_old_seq_open,
-       .read           = seq_read,
-       .write          = recent_old_proc_write,
-       .release        = seq_release_private,
-       .owner          = THIS_MODULE,
-};
-#endif
-
 static ssize_t
 recent_mt_proc_write(struct file *file, const char __user *input,
                     size_t size, loff_t *loff)
@@ -636,21 +541,11 @@ static int __net_init recent_proc_net_init(struct net *net)
        recent_net->xt_recent = proc_mkdir("xt_recent", net->proc_net);
        if (!recent_net->xt_recent)
                return -ENOMEM;
-#ifdef CONFIG_NETFILTER_XT_MATCH_RECENT_PROC_COMPAT
-       recent_net->ipt_recent = proc_mkdir("ipt_recent", net->proc_net);
-       if (!recent_net->ipt_recent) {
-               proc_net_remove(net, "xt_recent");
-               return -ENOMEM;
-       }
-#endif
        return 0;
 }
 
 static void __net_exit recent_proc_net_exit(struct net *net)
 {
-#ifdef CONFIG_NETFILTER_XT_MATCH_RECENT_PROC_COMPAT
-       proc_net_remove(net, "ipt_recent");
-#endif
        proc_net_remove(net, "xt_recent");
 }
 #else