add recent icmp messages Reference: /n/atom/patch/applied/icmpmsg Date: Tue Apr 8 22:47:32 CES 2014 Signed-off-by: quanstro@quanstro.net --- /sys/src/nix/ip/icmp.c Tue Apr 8 22:47:32 2014 +++ /sys/src/nix/ip/icmp.c Tue Apr 8 22:47:32 2014 @@ -318,6 +318,16 @@ [3] "port unreachable", [4] "fragmentation needed and DF set", [5] "source route failed", +[6] "destination network unknown", +[7] "destination host unknown", +[8] "source host isolated", +[9] "network administratively prohibited", +[10] "host administratively prohibited", +[11] "network unreachable for tos", +[12] "host unreachable for tos", +[13] "communication administratively prohibited", +[14] "host precedence violation", +[15] "precedence cutoff in effect", }; static void @@ -371,8 +381,11 @@ ipoput4(icmp->f, r, 0, MAXTTL, DFLTTOS, nil); break; case Unreachable: - if(p->code > 5) - msg = unreachcode[1]; + if(p->code >= nelem(unreachcode)){ + snprint(m2, sizeof m2, "unreachable %V->%V code %d", + p->src, p->dst, p->code); + msg = m2; + } else msg = unreachcode[p->code]; @@ -393,7 +406,7 @@ break; case TimeExceed: if(p->code == 0){ - sprint(m2, "ttl exceeded at %V", p->src); + snprint(m2, sizeof m2, "ttl exceeded at %V", p->src); bp->rp += ICMP_IPSIZE+ICMP_HDRSIZE; if(blocklen(bp) < MinAdvise){