98 lines
2.6 KiB
Diff
98 lines
2.6 KiB
Diff
--- iputils/ping6.c.OLD 2006-02-06 10:34:35.000000000 +0100
|
|
+++ iputils/ping6.c 2006-02-06 10:35:38.000000000 +0100
|
|
@@ -353,7 +353,7 @@
|
|
hostname = target;
|
|
|
|
if (ipv6_addr_any(&source.sin6_addr)) {
|
|
- int alen;
|
|
+ socklen_t alen;
|
|
int probe_fd = socket(AF_INET6, SOCK_DGRAM, 0);
|
|
|
|
if (probe_fd < 0) {
|
|
--- iputils/ping.c.OLD 2006-02-06 10:34:35.000000000 +0100
|
|
+++ iputils/ping.c 2006-02-06 10:34:35.000000000 +0100
|
|
@@ -253,7 +253,7 @@
|
|
}
|
|
|
|
if (source.sin_addr.s_addr == 0) {
|
|
- int alen;
|
|
+ socklen_t alen;
|
|
struct sockaddr_in dst = whereto;
|
|
int probe_fd = socket(AF_INET, SOCK_DGRAM, 0);
|
|
|
|
@@ -855,9 +855,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/ping_common.c.OLD 2006-02-06 10:34:35.000000000 +0100
|
|
+++ iputils/ping_common.c 2006-02-06 10:34:35.000000000 +0100
|
|
@@ -67,7 +67,7 @@
|
|
int ii, jj, kk;
|
|
int pat[16];
|
|
char *cp;
|
|
- char *bp = outpack+8;
|
|
+ unsigned char *bp = outpack+8;
|
|
|
|
for (cp = patp; *cp; cp++) {
|
|
if (!isxdigit(*cp)) {
|
|
@@ -393,7 +393,7 @@
|
|
void sock_setbufs(int icmp_sock, int alloc)
|
|
{
|
|
int rcvbuf, hold;
|
|
- int tmplen = sizeof(hold);
|
|
+ socklen_t tmplen = sizeof(hold);
|
|
|
|
if (!sndbuf)
|
|
sndbuf = alloc;
|
|
@@ -464,7 +464,7 @@
|
|
|
|
if (!(options & F_PINGFILLED)) {
|
|
int i;
|
|
- char *p = outpack+8;
|
|
+ unsigned char *p = outpack+8;
|
|
|
|
/* Do not forget about case of small datalen,
|
|
* fill timestamp area too!
|
|
@@ -819,7 +819,7 @@
|
|
}
|
|
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);
|