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; }
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 }
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 }
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); }
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"); }
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; }