Esempio n. 1
0
static int __init imq_init_hooks(void)
{
	int err;

	if ((err = nf_register_queue_handler(PF_INET, imq_nf_queue, NULL)))
		goto err1;
	if ((err = nf_register_hook(&imq_ingress_ipv4)))
		goto err2;
	if ((err = nf_register_hook(&imq_egress_ipv4)))
		goto err3;
#if defined(CONFIG_IPV6) || defined (CONFIG_IPV6_MODULE)
	if ((err = nf_register_queue_handler(PF_INET6, imq_nf_queue, NULL)))
		goto err4;
	if ((err = nf_register_hook(&imq_ingress_ipv6)))
		goto err5;
	if ((err = nf_register_hook(&imq_egress_ipv6)))
		goto err6;
#endif
	
//000001:tc.chen start
#if defined(CONFIG_BRIDGE_NF_EBTABLES)
	if ((err = nf_register_queue_handler(PF_BRIDGE, imq_nf_queue, NULL)))
		goto err7;
	if ((err = nf_register_hook(&imq_ingress_bridge)))
		goto err8;
	if ((err = nf_register_hook(&imq_egress_bridge)))
		goto err9;
#endif
//000001:tc.chen end

	return 0;
	
//000001:tc.chen start
#if defined(CONFIG_BRIDGE_NF_EBTABLES)
err9:
	nf_unregister_hook(&imq_ingress_bridge);
err8:
	nf_unregister_queue_handler(PF_BRIDGE);
err7:
#if defined(CONFIG_IPV6) || defined (CONFIG_IPV6_MODULE)
	nf_unregister_hook(&imq_egress_ipv6);
#endif
#endif
//000001:tc.chen end
#if defined(CONFIG_IPV6) || defined (CONFIG_IPV6_MODULE)
err6:
	nf_unregister_hook(&imq_ingress_ipv6);
err5:
	nf_unregister_queue_handler(PF_INET6);
err4:
	nf_unregister_hook(&imq_egress_ipv4);
#endif
err3:
	nf_unregister_hook(&imq_ingress_ipv4);
err2:
	nf_unregister_queue_handler(PF_INET);
err1:
	return err;
}
Esempio n. 2
0
File: imq.c Progetto: cilynx/dd-wrt
static void __exit imq_unhook(void)
{
	nf_unregister_hook(&imq_ingress_ipv4);
	nf_unregister_hook(&imq_egress_ipv4);
	nf_unregister_queue_handler(PF_INET,&nfqh);
#if defined(CONFIG_IPV6) || defined (CONFIG_IPV6_MODULE)
	nf_unregister_hook(&imq_ingress_ipv6);
	nf_unregister_hook(&imq_egress_ipv6);
	nf_unregister_queue_handler(PF_INET6,&nfqh);
#endif
}
Esempio n. 3
0
static void __exit imq_unhook(void)
{
	nf_unregister_hook(&imq_ingress_ipv4);
	nf_unregister_hook(&imq_egress_ipv4);
	nf_unregister_queue_handler(PF_INET);
#if defined(CONFIG_IPV6) || defined (CONFIG_IPV6_MODULE)
	nf_unregister_hook(&imq_ingress_ipv6);
	nf_unregister_hook(&imq_egress_ipv6);
	nf_unregister_queue_handler(PF_INET6);
#endif
//000001:tc.chen start
#if defined(CONFIG_BRIDGE_NF_EBTABLES)
	nf_unregister_hook(&imq_ingress_bridge);
	nf_unregister_hook(&imq_egress_bridge);
	nf_unregister_queue_handler(PF_BRIDGE);
#endif
//000001:tc.chen end
}
Esempio n. 4
0
static void ipq_destroy_queue(ipq_queue_t *q)
{
	nf_unregister_queue_handler(PF_INET);
	spin_lock_bh(&q->lock);
	q->terminate = 1;
	spin_unlock_bh(&q->lock);
	ipq_flush(q);
	kfree(q);
}
Esempio n. 5
0
static void __exit f_cleanup_module(void)
{
    int i;
    f_reset();
    for (i = 0; f_flowtable[i].name != NULL; i++) {
	remove_proc_entry(f_flowtable[i].name, firm_rules_proc_dir);
	/* Remove queue handler (delayed packets) */
        nf_unregister_queue_handler(f_flowtable[i].pf, &nf_q_h);                     /* Alterado */
    }
    remove_proc_entry("control", firm_proc_dir);
    remove_proc_entry("rules", firm_proc_dir);
    remove_proc_entry("firmament", proc_net);
    printk(KERN_INFO "firm_vm: unloaded\n");
}
Esempio n. 6
0
File: imq.c Progetto: cilynx/dd-wrt
static int __init imq_init_hooks(void)
{
	int err;

	err = nf_register_queue_handler(PF_INET, &nfqh);
	if (err > 0)
		goto err1;
	if ((err = nf_register_hook(&imq_ingress_ipv4)))
		goto err2;
	if ((err = nf_register_hook(&imq_egress_ipv4)))
		goto err3;
#if defined(CONFIG_IPV6) || defined (CONFIG_IPV6_MODULE)
	if ((err = nf_register_queue_handler(PF_INET6, &nfqh)))
		goto err4;
	if ((err = nf_register_hook(&imq_ingress_ipv6)))
		goto err5;
	if ((err = nf_register_hook(&imq_egress_ipv6)))
		goto err6;
#endif

	return 0;

#if defined(CONFIG_IPV6) || defined (CONFIG_IPV6_MODULE)
err6:
	nf_unregister_hook(&imq_ingress_ipv6);
err5:
	nf_unregister_queue_handler(PF_INET6,&nfqh);
err4:
	nf_unregister_hook(&imq_egress_ipv4);
#endif
err3:
	nf_unregister_hook(&imq_ingress_ipv4);
err2:
	nf_unregister_queue_handler(PF_INET,&nfqh);
err1:
	return err;
}