aboutsummaryrefslogtreecommitdiffstats
path: root/net/ipv6/sit.c
diff options
context:
space:
mode:
authorDavid S. Miller <davem@davemloft.net>2012-07-12 03:25:15 -0400
committerDavid S. Miller <davem@davemloft.net>2012-07-12 03:25:15 -0400
commitec18d9a2691d69cd14b48f9b919fddcef28b7f5c (patch)
tree4d10135edfe25d4ff56e39330b0f7797b2034b8a /net/ipv6/sit.c
parent3a5ad2ee5e2c5030d8a303d06f9148a2f893a369 (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.c8
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;