]> git.ipfire.org Git - thirdparty/mtr.git/commitdiff
fix warning on recent compilers.
authorR.E. Wolff <R.E.Wolff@BitWizard.nl>
Thu, 8 Aug 2019 08:47:44 +0000 (10:47 +0200)
committerR.E. Wolff <R.E.Wolff@BitWizard.nl>
Thu, 8 Aug 2019 08:47:44 +0000 (10:47 +0200)
packet/probe.c
packet/probe.h
packet/probe_unix.c
ui/mtr.c

index 0177e97e91c3dd81d53c1fb53f35a83c68e5b134..145c7a1e30231c49890ff524742a6010dac1a910 100644 (file)
@@ -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
     }
index 53b80373197dcef5587808e4c44df78833850ccc..796eb71450375104fc7e422d60c488689fb2c011 100644 (file)
@@ -207,4 +207,6 @@ int find_source_addr(
     struct sockaddr_storage *srcaddr,
     const struct sockaddr_storage *destaddr);
 
+extern char *probe_err;
+
 #endif
index 363930f12b9d30d8984087c3771beaf9ae9e4d76..4f49fd48ed0dacc374f5c82bf1c318034cd73af9 100644 (file)
@@ -145,7 +145,8 @@ void check_length_order(
 
     if (resolve_probe_addresses(net_state, &param, &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);
     }
 
index a3fef48d66fc763a339b24887384dd64f34ec168..bfc89c37e9778307c1f2ee0dc188095daf749096 100644 (file)
--- 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;