netfilter: xtables: allow table definitions not backed by hook_ops
The ip(6)tables nat table is currently receiving skbs from the netfilter core, after a followup patch skbs will be coming from the netfilter nat core instead, so the table is no longer backed by normal hook_ops. Signed-off-by: Florian Westphal <fw@strlen.de> Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
This commit is contained in:
parent
1f55236bd8
commit
ba7d284a98
|
@ -1782,6 +1782,8 @@ int ipt_register_table(struct net *net, const struct xt_table *table,
|
|||
|
||||
/* set res now, will see skbs right after nf_register_net_hooks */
|
||||
WRITE_ONCE(*res, new_table);
|
||||
if (!ops)
|
||||
return 0;
|
||||
|
||||
ret = nf_register_net_hooks(net, ops, hweight32(table->valid_hooks));
|
||||
if (ret != 0) {
|
||||
|
@ -1799,7 +1801,8 @@ out_free:
|
|||
void ipt_unregister_table(struct net *net, struct xt_table *table,
|
||||
const struct nf_hook_ops *ops)
|
||||
{
|
||||
nf_unregister_net_hooks(net, ops, hweight32(table->valid_hooks));
|
||||
if (ops)
|
||||
nf_unregister_net_hooks(net, ops, hweight32(table->valid_hooks));
|
||||
__ipt_unregister_table(net, table);
|
||||
}
|
||||
|
||||
|
|
|
@ -1792,6 +1792,8 @@ int ip6t_register_table(struct net *net, const struct xt_table *table,
|
|||
|
||||
/* set res now, will see skbs right after nf_register_net_hooks */
|
||||
WRITE_ONCE(*res, new_table);
|
||||
if (!ops)
|
||||
return 0;
|
||||
|
||||
ret = nf_register_net_hooks(net, ops, hweight32(table->valid_hooks));
|
||||
if (ret != 0) {
|
||||
|
@ -1809,7 +1811,8 @@ out_free:
|
|||
void ip6t_unregister_table(struct net *net, struct xt_table *table,
|
||||
const struct nf_hook_ops *ops)
|
||||
{
|
||||
nf_unregister_net_hooks(net, ops, hweight32(table->valid_hooks));
|
||||
if (ops)
|
||||
nf_unregister_net_hooks(net, ops, hweight32(table->valid_hooks));
|
||||
__ip6t_unregister_table(net, table);
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue