]> git.karo-electronics.de Git - karo-tx-linux.git/blobdiff - net/netfilter/nf_conntrack_irc.c
Merge branch 'for-linus-4.8' of git://git.kernel.org/pub/scm/linux/kernel/git/mason...
[karo-tx-linux.git] / net / netfilter / nf_conntrack_irc.c
index f97ac61d2536aac5d0c73d6e86b1a6df36bc60fd..1972a149f958350c6f6dd5f466d36fed152b76fc 100644 (file)
@@ -255,27 +255,18 @@ static int __init nf_conntrack_irc_init(void)
                ports[ports_c++] = IRC_PORT;
 
        for (i = 0; i < ports_c; i++) {
-               irc[i].tuple.src.l3num = AF_INET;
-               irc[i].tuple.src.u.tcp.port = htons(ports[i]);
-               irc[i].tuple.dst.protonum = IPPROTO_TCP;
-               irc[i].expect_policy = &irc_exp_policy;
-               irc[i].me = THIS_MODULE;
-               irc[i].help = help;
-
-               if (ports[i] == IRC_PORT)
-                       sprintf(irc[i].name, "irc");
-               else
-                       sprintf(irc[i].name, "irc-%u", i);
-
-               ret = nf_conntrack_helper_register(&irc[i]);
-               if (ret) {
-                       pr_err("failed to register helper for pf: %u port: %u\n",
-                              irc[i].tuple.src.l3num, ports[i]);
-                       ports_c = i;
-                       nf_conntrack_irc_fini();
-                       return ret;
-               }
+               nf_ct_helper_init(&irc[i], AF_INET, IPPROTO_TCP, "irc",
+                                 IRC_PORT, ports[i], i, &irc_exp_policy,
+                                 0, 0, help, NULL, THIS_MODULE);
+       }
+
+       ret = nf_conntrack_helpers_register(&irc[0], ports_c);
+       if (ret) {
+               pr_err("failed to register helpers\n");
+               kfree(irc_buffer);
+               return ret;
        }
+
        return 0;
 }
 
@@ -283,10 +274,7 @@ static int __init nf_conntrack_irc_init(void)
  * it is needed by the init function */
 static void nf_conntrack_irc_fini(void)
 {
-       int i;
-
-       for (i = 0; i < ports_c; i++)
-               nf_conntrack_helper_unregister(&irc[i]);
+       nf_conntrack_helpers_unregister(irc, ports_c);
        kfree(irc_buffer);
 }