raw.c (ffee921033e64edf8579a3b21c7f15d1a6c3ef71) raw.c (8d65b1190ddc548b0411477f308d04f4595bac57)
1/*
2 * RAW sockets for IPv6
3 * Linux INET6 implementation
4 *
5 * Authors:
6 * Pedro Roque <roque@di.fc.ul.pt>
7 *
8 * Adapted from linux/net/ipv4/raw.c

--- 321 unchanged lines hidden (view full) ---

330 if (!np->recverr && sk->sk_state != TCP_ESTABLISHED)
331 return;
332
333 harderr = icmpv6_err_convert(type, code, &err);
334 if (type == ICMPV6_PKT_TOOBIG) {
335 ip6_sk_update_pmtu(skb, sk, info);
336 harderr = (np->pmtudisc == IPV6_PMTUDISC_DO);
337 }
1/*
2 * RAW sockets for IPv6
3 * Linux INET6 implementation
4 *
5 * Authors:
6 * Pedro Roque <roque@di.fc.ul.pt>
7 *
8 * Adapted from linux/net/ipv4/raw.c

--- 321 unchanged lines hidden (view full) ---

330 if (!np->recverr && sk->sk_state != TCP_ESTABLISHED)
331 return;
332
333 harderr = icmpv6_err_convert(type, code, &err);
334 if (type == ICMPV6_PKT_TOOBIG) {
335 ip6_sk_update_pmtu(skb, sk, info);
336 harderr = (np->pmtudisc == IPV6_PMTUDISC_DO);
337 }
338 if (type == NDISC_REDIRECT)
338 if (type == NDISC_REDIRECT) {
339 ip6_sk_redirect(skb, sk);
339 ip6_sk_redirect(skb, sk);
340 return;
341 }
340 if (np->recverr) {
341 u8 *payload = skb->data;
342 if (!inet->hdrincl)
343 payload += offset;
344 ipv6_icmp_error(sk, skb, err, 0, ntohl(info), payload);
345 }
346
347 if (np->recverr || harderr) {

--- 1000 unchanged lines hidden ---
342 if (np->recverr) {
343 u8 *payload = skb->data;
344 if (!inet->hdrincl)
345 payload += offset;
346 ipv6_icmp_error(sk, skb, err, 0, ntohl(info), payload);
347 }
348
349 if (np->recverr || harderr) {

--- 1000 unchanged lines hidden ---