]> Pileus Git - ~andy/linux/blobdiff - net/ipv4/raw.c
Merge branch 'for-john' of git://git.kernel.org/pub/scm/linux/kernel/git/jberg/mac802...
[~andy/linux] / net / ipv4 / raw.c
index 4032b818f3e41c13c5a0477a309eeea91ea3bf81..ff0f071969ea77dbdb6797584765e32bc958203f 100644 (file)
@@ -216,6 +216,11 @@ static void raw_err(struct sock *sk, struct sk_buff *skb, u32 info)
        int err = 0;
        int harderr = 0;
 
+       if (type == ICMP_DEST_UNREACH && code == ICMP_FRAG_NEEDED)
+               ipv4_sk_update_pmtu(skb, sk, info);
+       else if (type == ICMP_REDIRECT)
+               ipv4_sk_redirect(skb, sk);
+
        /* Report error on raw socket, if:
           1. User requested ip_recverr.
           2. Socket is connected (otherwise the error indication