diff --git a/contrib/traceroute/traceroute.8 b/contrib/traceroute/traceroute.8 index 3920d2a3d882..710ecde72c48 100644 --- a/contrib/traceroute/traceroute.8 +++ b/contrib/traceroute/traceroute.8 @@ -372,6 +372,20 @@ or (source route failed), .B !F\- (fragmentation needed \- the RFC1191 Path MTU Discovery value is displayed), +.B !U +or +.B !W +(destination network/host unknown), +.B !I +(source host is isolated), +.B !A +(communication with destination network administratively prohibited), +.B !Z +(communication with destination host administratively prohibited), +.B !Q +(for this ToS the destination network is unreachable), +.B !T +(for this ToS the destination host is unreachable), .B !X (communication administratively prohibited), .B !V diff --git a/contrib/traceroute/traceroute.c b/contrib/traceroute/traceroute.c index e6182f4770e8..fd4165a31e8e 100644 --- a/contrib/traceroute/traceroute.c +++ b/contrib/traceroute/traceroute.c @@ -1017,6 +1017,41 @@ main(int argc, char **argv) Printf(" !S"); break; + case ICMP_UNREACH_NET_UNKNOWN: + ++unreachable; + Printf(" !U"); + break; + + case ICMP_UNREACH_HOST_UNKNOWN: + ++unreachable; + Printf(" !W"); + break; + + case ICMP_UNREACH_ISOLATED: + ++unreachable; + Printf(" !I"); + break; + + case ICMP_UNREACH_NET_PROHIB: + ++unreachable; + Printf(" !A"); + break; + + case ICMP_UNREACH_HOST_PROHIB: + ++unreachable; + Printf(" !Z"); + break; + + case ICMP_UNREACH_TOSNET: + ++unreachable; + Printf(" !Q"); + break; + + case ICMP_UNREACH_TOSHOST: + ++unreachable; + Printf(" !T"); + break; + case ICMP_UNREACH_FILTER_PROHIB: ++unreachable; Printf(" !X");