diff options
Diffstat (limited to 'packages/iputils/files/debian-fixes.patch')
-rw-r--r-- | packages/iputils/files/debian-fixes.patch | 133 |
1 files changed, 133 insertions, 0 deletions
diff --git a/packages/iputils/files/debian-fixes.patch b/packages/iputils/files/debian-fixes.patch new file mode 100644 index 0000000000..1b014f07f9 --- /dev/null +++ b/packages/iputils/files/debian-fixes.patch @@ -0,0 +1,133 @@ +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<<ICMP_PARAMETERPROB)| + (1<<ICMP_REDIRECT)| + (1<<ICMP_ECHOREPLY)); +- if (setsockopt(icmp_sock, SOL_RAW, ICMP_FILTER, (char*)&filt, sizeof(filt)) == -1) ++ if (setsockopt(icmp_sock, SOL_RAW, ICMP_FILTER, ++ (char*)&filt, sizeof(filt)) == -1) ++ { + perror("WARNING: setsockopt(ICMP_FILTER)"); ++ fprintf(stderr, ++ "Do you have CONFIG_SOCKET in your kernel?"); ++ } + } + + hold = 1; +@@ -848,9 +853,36 @@ + case ICMP_SR_FAILED: + printf("Source Route Failed\n"); + break; ++ case ICMP_NET_UNKNOWN: ++ printf("Destination Net Unknown\n"); ++ break; ++ case ICMP_HOST_UNKNOWN: ++ printf("Destination Host Unknown\n"); ++ break; ++ case ICMP_HOST_ISOLATED: ++ printf("Source Host Isolated\n"); ++ break; ++ case ICMP_NET_ANO: ++ printf("Destination Net Prohibited\n"); ++ break; ++ case ICMP_HOST_ANO: ++ printf("Destination Host Prohibited\n"); ++ break; ++ case ICMP_NET_UNR_TOS: ++ printf("Destination Net Unreachable for Type of Service\n"); ++ break; ++ case ICMP_HOST_UNR_TOS: ++ printf("Destination Host Unreachable for Type of Service\n"); ++ break; + case ICMP_PKT_FILTERED: + printf("Packet filtered\n"); + break; ++ case ICMP_PREC_VIOLATION: ++ printf("Precedence Violation\n"); ++ break; ++ case ICMP_PREC_CUTOFF: ++ printf("Precedence Cutoff\n"); ++ break; + default: + printf("Dest Unreachable, Bad Code: %d\n", code); + break; +--- iputils-20020927.orig/ping6.c ++++ iputils-20020927/ping6.c +@@ -440,7 +440,6 @@ + /* + * select icmp echo reply as icmp type to receive + */ +- + ICMPV6_FILTER_SETBLOCKALL(&filter); + + if (!working_recverr) { +--- iputils-20020927.orig/tracepath.c ++++ iputils-20020927/tracepath.c +@@ -307,9 +307,9 @@ + base_port = atoi(p+1); + } else + base_port = 44444; +- he = gethostbyname(argv[0]); ++ he = gethostbyname2(argv[0], AF_INET); + if (he == NULL) { +- herror("gethostbyname"); ++ herror("gethostbyname2"); + exit(1); + } + memcpy(&target.sin_addr, he->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"); + } +- |