diff options
author | David S. Miller <davem@davemloft.net> | 2012-07-12 03:25:15 -0400 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2012-07-12 03:25:15 -0400 |
commit | ec18d9a2691d69cd14b48f9b919fddcef28b7f5c (patch) | |
tree | 4d10135edfe25d4ff56e39330b0f7797b2034b8a /net/ipv6/sit.c | |
parent | 3a5ad2ee5e2c5030d8a303d06f9148a2f893a369 (diff) |
ipv6: Add redirect support to all protocol icmp error handlers.
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/ipv6/sit.c')
-rw-r--r-- | net/ipv6/sit.c | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/net/ipv6/sit.c b/net/ipv6/sit.c index 49aea94c9be3..fbf1622fdeef 100644 --- a/net/ipv6/sit.c +++ b/net/ipv6/sit.c | |||
@@ -539,6 +539,8 @@ static int ipip6_err(struct sk_buff *skb, u32 info) | |||
539 | if (code != ICMP_EXC_TTL) | 539 | if (code != ICMP_EXC_TTL) |
540 | return 0; | 540 | return 0; |
541 | break; | 541 | break; |
542 | case ICMP_REDIRECT: | ||
543 | break; | ||
542 | } | 544 | } |
543 | 545 | ||
544 | err = -ENOENT; | 546 | err = -ENOENT; |
@@ -557,6 +559,12 @@ static int ipip6_err(struct sk_buff *skb, u32 info) | |||
557 | err = 0; | 559 | err = 0; |
558 | goto out; | 560 | goto out; |
559 | } | 561 | } |
562 | if (type == ICMP_REDIRECT) { | ||
563 | ipv4_redirect(skb, dev_net(skb->dev), t->dev->ifindex, 0, | ||
564 | IPPROTO_IPV6, 0); | ||
565 | err = 0; | ||
566 | goto out; | ||
567 | } | ||
560 | 568 | ||
561 | if (t->parms.iph.daddr == 0) | 569 | if (t->parms.iph.daddr == 0) |
562 | goto out; | 570 | goto out; |