static void __net_exit arptable_filter_net_exit(struct net *net) { if (!net->ipv4.arptable_filter) return; arpt_unregister_table(net, net->ipv4.arptable_filter, arpfilter_ops); net->ipv4.arptable_filter = NULL; }
static int __init arptable_filter_init(void) { int ret; /* Register table */ ret = arpt_register_table(&packet_filter, &initial_table.repl); if (ret < 0) return ret; ret = nf_register_hooks(arpt_ops, ARRAY_SIZE(arpt_ops)); if (ret < 0) goto cleanup_table; return ret; cleanup_table: arpt_unregister_table(&packet_filter); return ret; }
static void __net_exit arptable_filter_net_exit(struct net *net) { arpt_unregister_table(net->ipv4.arptable_filter); }
static void __exit arptable_filter_fini(void) { nf_unregister_hooks(arpt_ops, ARRAY_SIZE(arpt_ops)); arpt_unregister_table(&packet_filter); }