From: R.E. Wolff Date: Thu, 8 Aug 2019 08:47:44 +0000 (+0200) Subject: fix warning on recent compilers. X-Git-Tag: v0.94~23^2~1 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=919422d1dee7d35a236035f190f491a4a2113772;p=thirdparty%2Fmtr.git fix warning on recent compilers. --- diff --git a/packet/probe.c b/packet/probe.c index 0177e97..145c7a1 100644 --- a/packet/probe.c +++ b/packet/probe.c @@ -38,6 +38,8 @@ #include "timeval.h" #include "sockaddr.h" +char *probe_err; + /* Convert the destination address from text to sockaddr */ int decode_address_string( int ip_version, @@ -98,18 +100,23 @@ int resolve_probe_addresses( { if (decode_address_string (param->ip_version, param->remote_address, dest_sockaddr)) { + probe_err = "decode address string remote"; return -1; } if (param->local_address) { if (decode_address_string (param->ip_version, param->local_address, src_sockaddr)) { + probe_err = "decode address string local"; return -1; } } else { + probe_err = "find source address"; if (find_source_addr(src_sockaddr, dest_sockaddr)) { + //probe_err = "find source address"; return -1; } + probe_err = ""; } /* DGRAM ICMP id is taken from src_port not from ICMP header */ if (param->protocol == IPPROTO_ICMP) { @@ -327,12 +334,14 @@ int find_source_addr( sock = socket(destaddr->ss_family, SOCK_DGRAM, IPPROTO_UDP); if (sock == -1) { + probe_err = "open socket"; return -1; } if (connect(sock, (struct sockaddr *) &dest_with_port, len) == 0) { if (getsockname(sock, (struct sockaddr *) srcaddr, &len)) { close(sock); + probe_err = "getsockname"; return -1; } } else { @@ -341,6 +350,7 @@ int find_source_addr( * a case when mtr is run against unreachable host (that can become * reachable) */ if (errno != EHOSTUNREACH) { + probe_err = "not hostunreach"; close(sock); return -1; } @@ -354,6 +364,7 @@ int find_source_addr( } #else close(sock); + probe_err = "connect failed"; return -1; #endif } diff --git a/packet/probe.h b/packet/probe.h index 53b8037..796eb71 100644 --- a/packet/probe.h +++ b/packet/probe.h @@ -207,4 +207,6 @@ int find_source_addr( struct sockaddr_storage *srcaddr, const struct sockaddr_storage *destaddr); +extern char *probe_err; + #endif diff --git a/packet/probe_unix.c b/packet/probe_unix.c index 363930f..4f49fd4 100644 --- a/packet/probe_unix.c +++ b/packet/probe_unix.c @@ -145,7 +145,8 @@ void check_length_order( if (resolve_probe_addresses(net_state, ¶m, &p0.remote_addr, &p0.local_addr)) { - fprintf(stderr, "Error decoding localhost address\n"); + fprintf(stderr, "Error decoding localhost address (%s/%s)\n", + probe_err, strerror (errno)); exit(EXIT_FAILURE); } diff --git a/ui/mtr.c b/ui/mtr.c index a3fef48..bfc89c3 100644 --- a/ui/mtr.c +++ b/ui/mtr.c @@ -299,7 +299,7 @@ static void init_fld_options( { int i; - memset(ctl->fld_index, -1, FLD_INDEX_SZ); + memset(ctl->fld_index, -1, FLD_INDEX_SZ*sizeof(ctl->fld_index[0])); for (i = 0; data_fields[i].key != 0; i++) { ctl->available_options[i] = data_fields[i].key;