Commit c9484874e7596d6c890e4130336f5379f6a59c5f
Committed by
Pablo Neira Ayuso
1 parent
3b088c4bc0
netfilter: nf_tables: add hook ops to struct nft_pktinfo
Multi-family tables need the AF from the hook ops. Add a pointer to the hook ops and replace usage of the hooknum member in struct nft_pktinfo. Signed-off-by: Patrick McHardy <kaber@trash.net> Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
Showing 4 changed files with 8 additions and 7 deletions Side-by-side Diff
include/net/netfilter/nf_tables.h
... | ... | @@ -13,7 +13,7 @@ |
13 | 13 | struct sk_buff *skb; |
14 | 14 | const struct net_device *in; |
15 | 15 | const struct net_device *out; |
16 | - u8 hooknum; | |
16 | + const struct nf_hook_ops *ops; | |
17 | 17 | u8 nhoff; |
18 | 18 | u8 thoff; |
19 | 19 | /* for x_tables compatibility */ |
... | ... | @@ -29,7 +29,8 @@ |
29 | 29 | pkt->skb = skb; |
30 | 30 | pkt->in = pkt->xt.in = in; |
31 | 31 | pkt->out = pkt->xt.out = out; |
32 | - pkt->hooknum = pkt->xt.hooknum = ops->hooknum; | |
32 | + pkt->ops = ops; | |
33 | + pkt->xt.hooknum = ops->hooknum; | |
33 | 34 | pkt->xt.family = ops->pf; |
34 | 35 | } |
35 | 36 |
net/netfilter/nf_tables_core.c
... | ... | @@ -109,7 +109,7 @@ |
109 | 109 | { |
110 | 110 | struct net *net = dev_net(pkt->in ? pkt->in : pkt->out); |
111 | 111 | |
112 | - nf_log_packet(net, pkt->xt.family, pkt->hooknum, pkt->skb, pkt->in, | |
112 | + nf_log_packet(net, pkt->xt.family, pkt->ops->hooknum, pkt->skb, pkt->in, | |
113 | 113 | pkt->out, &trace_loginfo, "TRACE: %s:%s:%s:%u ", |
114 | 114 | chain->table->name, chain->name, comments[type], |
115 | 115 | rulenum); |
net/netfilter/nft_log.c
... | ... | @@ -33,7 +33,7 @@ |
33 | 33 | const struct nft_log *priv = nft_expr_priv(expr); |
34 | 34 | struct net *net = dev_net(pkt->in ? pkt->in : pkt->out); |
35 | 35 | |
36 | - nf_log_packet(net, priv->family, pkt->hooknum, pkt->skb, pkt->in, | |
36 | + nf_log_packet(net, priv->family, pkt->ops->hooknum, pkt->skb, pkt->in, | |
37 | 37 | pkt->out, &priv->loginfo, "%s", priv->prefix); |
38 | 38 | } |
39 | 39 |
net/netfilter/nft_reject.c
... | ... | @@ -44,15 +44,15 @@ |
44 | 44 | #if IS_ENABLED(CONFIG_NF_TABLES_IPV6) |
45 | 45 | else if (priv->family == NFPROTO_IPV6) |
46 | 46 | nf_send_unreach6(net, pkt->skb, priv->icmp_code, |
47 | - pkt->hooknum); | |
47 | + pkt->ops->hooknum); | |
48 | 48 | #endif |
49 | 49 | break; |
50 | 50 | case NFT_REJECT_TCP_RST: |
51 | 51 | if (priv->family == NFPROTO_IPV4) |
52 | - nf_send_reset(pkt->skb, pkt->hooknum); | |
52 | + nf_send_reset(pkt->skb, pkt->ops->hooknum); | |
53 | 53 | #if IS_ENABLED(CONFIG_NF_TABLES_IPV6) |
54 | 54 | else if (priv->family == NFPROTO_IPV6) |
55 | - nf_send_reset6(net, pkt->skb, pkt->hooknum); | |
55 | + nf_send_reset6(net, pkt->skb, pkt->ops->hooknum); | |
56 | 56 | #endif |
57 | 57 | break; |
58 | 58 | } |