Fixes taken from the lastest debian .deb pacakge (20020927-3). --- iputils-20020927.orig/ping.c +++ iputils-20020927/ping.c @@ -232,7 +232,7 @@ if (argc == 1) options |= F_NUMERIC; } else { - hp = gethostbyname(target); + hp = gethostbyname2(target, AF_INET); if (!hp) { fprintf(stderr, "ping: unknown host %s\n", target); exit(2); @@ -373,8 +373,13 @@ (1<h_addr, 4); --- iputils-20020927.orig/traceroute6.c +++ iputils-20020927/traceroute6.c @@ -441,7 +441,7 @@ * to fix something send the patch to me for sanity checking. * "datalen" patch is a shit. */ if ((unsigned int)datalen == 0) - datalen == sizeof(struct pkt_format); + datalen = sizeof(struct pkt_format); } if (datalen < (int)sizeof(struct pkt_format) || datalen >= MAXPACKET) { --- iputils-20020927.orig/ping_common.c +++ iputils-20020927/ping_common.c @@ -435,6 +435,7 @@ if (options & F_SO_DONTROUTE) setsockopt(icmp_sock, SOL_SOCKET, SO_DONTROUTE, (char *)&hold, sizeof(hold)); +#ifndef __sparc__ /* XXX SO_TIMESTAMP seems broken on sparc */ #ifdef SO_TIMESTAMP if (!(options&F_LATENCY)) { int on = 1; @@ -442,6 +443,7 @@ fprintf(stderr, "Warning: no SO_TIMESTAMP support, falling back to SIOCGSTAMP\n"); } #endif +#endif /* __sparc__ */ /* Set some SNDTIMEO to prevent blocking forever * on sends, when device is too slow or stalls. Just put limit @@ -817,7 +819,8 @@ } if (pipesize > 1) printf(", pipe %d", pipesize); - if (ntransmitted > 1 && (!interval || (options&(F_FLOOD|F_ADAPTIVE)))) { + if (ntransmitted > 1 && nreceived && + (!interval || (options&(F_FLOOD|F_ADAPTIVE)))) { int ipg = (1000000*(long long)tv.tv_sec+tv.tv_usec)/(ntransmitted-1); printf(", ipg/ewma %d.%03d/%d.%03d ms", ipg/1000, ipg%1000, rtt/8000, (rtt/8)%1000); @@ -851,4 +854,3 @@ } fprintf(stderr, "\n"); } -