netfilter: Push struct net down into nf_afinfo.reroute
The network namespace is needed when routing a packet. Stop making nf_afinfo.reroute guess which network namespace is the proper namespace to route the packet in. Signed-off-by: "Eric W. Biederman" <ebiederm@xmission.com> Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
This commit is contained in:
parent
372892ec11
commit
d815d90bbb
|
@ -283,7 +283,7 @@ struct nf_afinfo {
|
|||
struct flowi *fl, bool strict);
|
||||
void (*saveroute)(const struct sk_buff *skb,
|
||||
struct nf_queue_entry *entry);
|
||||
int (*reroute)(struct sk_buff *skb,
|
||||
int (*reroute)(struct net *net, struct sk_buff *skb,
|
||||
const struct nf_queue_entry *entry);
|
||||
int route_key_size;
|
||||
};
|
||||
|
|
|
@ -104,7 +104,7 @@ static void nf_ip_saveroute(const struct sk_buff *skb,
|
|||
}
|
||||
}
|
||||
|
||||
static int nf_ip_reroute(struct sk_buff *skb,
|
||||
static int nf_ip_reroute(struct net *net, struct sk_buff *skb,
|
||||
const struct nf_queue_entry *entry)
|
||||
{
|
||||
const struct ip_rt_info *rt_info = nf_queue_entry_reroute(entry);
|
||||
|
|
|
@ -93,7 +93,7 @@ static void nf_ip6_saveroute(const struct sk_buff *skb,
|
|||
}
|
||||
}
|
||||
|
||||
static int nf_ip6_reroute(struct sk_buff *skb,
|
||||
static int nf_ip6_reroute(struct net *net, struct sk_buff *skb,
|
||||
const struct nf_queue_entry *entry)
|
||||
{
|
||||
struct ip6_rt_info *rt_info = nf_queue_entry_reroute(entry);
|
||||
|
|
|
@ -199,7 +199,7 @@ void nf_reinject(struct nf_queue_entry *entry, unsigned int verdict)
|
|||
|
||||
if (verdict == NF_ACCEPT) {
|
||||
afinfo = nf_get_afinfo(entry->state.pf);
|
||||
if (!afinfo || afinfo->reroute(skb, entry) < 0)
|
||||
if (!afinfo || afinfo->reroute(entry->state.net, skb, entry) < 0)
|
||||
verdict = NF_DROP;
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue