mirror of
https://github.com/Fishwaldo/Star64_linux.git
synced 2025-07-22 14:52:34 +00:00
ipv4: Add redirect support to all protocol icmp error handlers.
Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
b42597e2f3
commit
55be7a9c60
12 changed files with 110 additions and 16 deletions
|
@ -321,6 +321,14 @@ static void do_pmtu_discovery(struct sock *sk, const struct iphdr *iph, u32 mtu)
|
|||
} /* else let the usual retransmit timer handle it */
|
||||
}
|
||||
|
||||
static void do_redirect(struct sk_buff *skb, struct sock *sk)
|
||||
{
|
||||
struct dst_entry *dst = __sk_dst_check(sk, 0);
|
||||
|
||||
if (dst && dst->ops->redirect)
|
||||
dst->ops->redirect(dst, skb);
|
||||
}
|
||||
|
||||
/*
|
||||
* This routine is called by the ICMP module when it gets some
|
||||
* sort of error condition. If err < 0 then the socket should
|
||||
|
@ -394,6 +402,9 @@ void tcp_v4_err(struct sk_buff *icmp_skb, u32 info)
|
|||
}
|
||||
|
||||
switch (type) {
|
||||
case ICMP_REDIRECT:
|
||||
do_redirect(icmp_skb, sk);
|
||||
goto out;
|
||||
case ICMP_SOURCE_QUENCH:
|
||||
/* Just silently ignore these. */
|
||||
goto out;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue