netfilter: xtables: consolidate code into xt_request_find_match
[safe/jmp/linux-2.6] / net / netfilter / xt_CONNSECMARK.c
index 2041a3d..6812865 100644 (file)
@@ -15,6 +15,7 @@
  * published by the Free Software Foundation.
  *
  */
+#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
 #include <linux/module.h>
 #include <linux/skbuff.h>
 #include <linux/netfilter/x_tables.h>
@@ -22,8 +23,6 @@
 #include <net/netfilter/nf_conntrack.h>
 #include <net/netfilter/nf_conntrack_ecache.h>
 
-#define PFX "CONNSECMARK: "
-
 MODULE_LICENSE("GPL");
 MODULE_AUTHOR("James Morris <jmorris@redhat.com>");
 MODULE_DESCRIPTION("Xtables: target for copying between connection and security mark");
@@ -91,8 +90,8 @@ static bool connsecmark_tg_check(const struct xt_tgchk_param *par)
 
        if (strcmp(par->table, "mangle") != 0 &&
            strcmp(par->table, "security") != 0) {
-               printk(KERN_INFO PFX "target only valid in the \'mangle\' "
-                      "or \'security\' tables, not \'%s\'.\n", par->table);
+               pr_info("target only valid in the \'mangle\' "
+                       "or \'security\' tables, not \'%s\'.\n", par->table);
                return false;
        }
 
@@ -102,55 +101,42 @@ static bool connsecmark_tg_check(const struct xt_tgchk_param *par)
                break;
 
        default:
-               printk(KERN_INFO PFX "invalid mode: %hu\n", info->mode);
+               pr_info("invalid mode: %hu\n", info->mode);
                return false;
        }
 
-       if (nf_ct_l3proto_try_module_get(par->target->family) < 0) {
-               printk(KERN_WARNING "can't load conntrack support for "
-                                   "proto=%u\n", par->target->family);
+       if (nf_ct_l3proto_try_module_get(par->family) < 0) {
+               pr_info("cannot load conntrack support for proto=%u\n",
+                       par->family);
                return false;
        }
        return true;
 }
 
-static void
-connsecmark_tg_destroy(const struct xt_target *target, void *targinfo)
+static void connsecmark_tg_destroy(const struct xt_tgdtor_param *par)
 {
-       nf_ct_l3proto_module_put(target->family);
+       nf_ct_l3proto_module_put(par->family);
 }
 
-static struct xt_target connsecmark_tg_reg[] __read_mostly = {
-       {
-               .name           = "CONNSECMARK",
-               .family         = NFPROTO_IPV4,
-               .checkentry     = connsecmark_tg_check,
-               .destroy        = connsecmark_tg_destroy,
-               .target         = connsecmark_tg,
-               .targetsize     = sizeof(struct xt_connsecmark_target_info),
-               .me             = THIS_MODULE,
-       },
-       {
-               .name           = "CONNSECMARK",
-               .family         = NFPROTO_IPV6,
-               .checkentry     = connsecmark_tg_check,
-               .destroy        = connsecmark_tg_destroy,
-               .target         = connsecmark_tg,
-               .targetsize     = sizeof(struct xt_connsecmark_target_info),
-               .me             = THIS_MODULE,
-       },
+static struct xt_target connsecmark_tg_reg __read_mostly = {
+       .name       = "CONNSECMARK",
+       .revision   = 0,
+       .family     = NFPROTO_UNSPEC,
+       .checkentry = connsecmark_tg_check,
+       .destroy    = connsecmark_tg_destroy,
+       .target     = connsecmark_tg,
+       .targetsize = sizeof(struct xt_connsecmark_target_info),
+       .me         = THIS_MODULE,
 };
 
 static int __init connsecmark_tg_init(void)
 {
-       return xt_register_targets(connsecmark_tg_reg,
-              ARRAY_SIZE(connsecmark_tg_reg));
+       return xt_register_target(&connsecmark_tg_reg);
 }
 
 static void __exit connsecmark_tg_exit(void)
 {
-       xt_unregister_targets(connsecmark_tg_reg,
-                             ARRAY_SIZE(connsecmark_tg_reg));
+       xt_unregister_target(&connsecmark_tg_reg);
 }
 
 module_init(connsecmark_tg_init);