|
@@ -1815,14 +1815,44 @@ static struct nf_conntrack_helper nf_conntrack_helper_ras[] __read_mostly = {
|
|
|
},
|
|
|
};
|
|
|
|
|
|
+static int __init h323_helper_init(void)
|
|
|
+{
|
|
|
+ int ret;
|
|
|
+
|
|
|
+ ret = nf_conntrack_helper_register(&nf_conntrack_helper_h245);
|
|
|
+ if (ret < 0)
|
|
|
+ return ret;
|
|
|
+ ret = nf_conntrack_helpers_register(nf_conntrack_helper_q931,
|
|
|
+ ARRAY_SIZE(nf_conntrack_helper_q931));
|
|
|
+ if (ret < 0)
|
|
|
+ goto err1;
|
|
|
+ ret = nf_conntrack_helpers_register(nf_conntrack_helper_ras,
|
|
|
+ ARRAY_SIZE(nf_conntrack_helper_ras));
|
|
|
+ if (ret < 0)
|
|
|
+ goto err2;
|
|
|
+
|
|
|
+ return 0;
|
|
|
+err2:
|
|
|
+ nf_conntrack_helpers_unregister(nf_conntrack_helper_q931,
|
|
|
+ ARRAY_SIZE(nf_conntrack_helper_q931));
|
|
|
+err1:
|
|
|
+ nf_conntrack_helper_unregister(&nf_conntrack_helper_h245);
|
|
|
+ return ret;
|
|
|
+}
|
|
|
+
|
|
|
+static void __exit h323_helper_exit(void)
|
|
|
+{
|
|
|
+ nf_conntrack_helpers_unregister(nf_conntrack_helper_ras,
|
|
|
+ ARRAY_SIZE(nf_conntrack_helper_ras));
|
|
|
+ nf_conntrack_helpers_unregister(nf_conntrack_helper_q931,
|
|
|
+ ARRAY_SIZE(nf_conntrack_helper_q931));
|
|
|
+ nf_conntrack_helper_unregister(&nf_conntrack_helper_h245);
|
|
|
+}
|
|
|
+
|
|
|
/****************************************************************************/
|
|
|
static void __exit nf_conntrack_h323_fini(void)
|
|
|
{
|
|
|
- nf_conntrack_helper_unregister(&nf_conntrack_helper_ras[1]);
|
|
|
- nf_conntrack_helper_unregister(&nf_conntrack_helper_ras[0]);
|
|
|
- nf_conntrack_helper_unregister(&nf_conntrack_helper_q931[1]);
|
|
|
- nf_conntrack_helper_unregister(&nf_conntrack_helper_q931[0]);
|
|
|
- nf_conntrack_helper_unregister(&nf_conntrack_helper_h245);
|
|
|
+ h323_helper_exit();
|
|
|
kfree(h323_buffer);
|
|
|
pr_debug("nf_ct_h323: fini\n");
|
|
|
}
|
|
@@ -1837,32 +1867,11 @@ static int __init nf_conntrack_h323_init(void)
|
|
|
h323_buffer = kmalloc(65536, GFP_KERNEL);
|
|
|
if (!h323_buffer)
|
|
|
return -ENOMEM;
|
|
|
- ret = nf_conntrack_helper_register(&nf_conntrack_helper_h245);
|
|
|
+ ret = h323_helper_init();
|
|
|
if (ret < 0)
|
|
|
goto err1;
|
|
|
- ret = nf_conntrack_helper_register(&nf_conntrack_helper_q931[0]);
|
|
|
- if (ret < 0)
|
|
|
- goto err2;
|
|
|
- ret = nf_conntrack_helper_register(&nf_conntrack_helper_q931[1]);
|
|
|
- if (ret < 0)
|
|
|
- goto err3;
|
|
|
- ret = nf_conntrack_helper_register(&nf_conntrack_helper_ras[0]);
|
|
|
- if (ret < 0)
|
|
|
- goto err4;
|
|
|
- ret = nf_conntrack_helper_register(&nf_conntrack_helper_ras[1]);
|
|
|
- if (ret < 0)
|
|
|
- goto err5;
|
|
|
pr_debug("nf_ct_h323: init success\n");
|
|
|
return 0;
|
|
|
-
|
|
|
-err5:
|
|
|
- nf_conntrack_helper_unregister(&nf_conntrack_helper_ras[0]);
|
|
|
-err4:
|
|
|
- nf_conntrack_helper_unregister(&nf_conntrack_helper_q931[1]);
|
|
|
-err3:
|
|
|
- nf_conntrack_helper_unregister(&nf_conntrack_helper_q931[0]);
|
|
|
-err2:
|
|
|
- nf_conntrack_helper_unregister(&nf_conntrack_helper_h245);
|
|
|
err1:
|
|
|
kfree(h323_buffer);
|
|
|
return ret;
|