ctdb-common: Add path tool
[vlendec/samba-autobuild/.git] / ctdb / common / system_kfreebsd.c
index 87624d69bbaa5718d9e1186e0f50224bae27048f..d02f28659cbe680ab176f023fb80b3a1e0ec86a7 100644 (file)
@@ -136,6 +136,7 @@ int ctdb_sys_send_tcp(const ctdb_sock_addr *dest,
                struct ip6_hdr ip6;
                struct tcphdr tcp;
        } ip6pkt;
+       int saved_errno;
 
        switch (src->ip.sin_family) {
        case AF_INET:
@@ -178,10 +179,13 @@ int ctdb_sys_send_tcp(const ctdb_sock_addr *dest,
                        return -1;
                }
 
-               ret = sendto(s, &ip4pkt, sizeof(ip4pkt), 0, &dest->ip, sizeof(dest->ip));
+               ret = sendto(s, &ip4pkt, sizeof(ip4pkt), 0,
+                            &dest->ip, sizeof(dest->ip));
+               saved_errno = errno;
                close(s);
                if (ret != sizeof(ip4pkt)) {
-                       DEBUG(DEBUG_CRIT,(__location__ " failed sendto (%s)\n", strerror(errno)));
+                       DEBUG(DEBUG_ERR,
+                             ("Failed sendto (%s)\n", strerror(saved_errno)));
                        return -1;
                }
                break;
@@ -220,12 +224,15 @@ int ctdb_sys_send_tcp(const ctdb_sock_addr *dest,
                tmpport = tmpdest->ip6.sin6_port;
 
                tmpdest->ip6.sin6_port = 0;
-               ret = sendto(s, &ip6pkt, sizeof(ip6pkt), 0, &dest->ip6, sizeof(dest->ip6));
+               ret = sendto(s, &ip6pkt, sizeof(ip6pkt), 0,
+                            &dest->ip6, sizeof(dest->ip6));
+               saved_errno = errno;
                tmpdest->ip6.sin6_port = tmpport;
                close(s);
 
                if (ret != sizeof(ip6pkt)) {
-                       DEBUG(DEBUG_CRIT,(__location__ " failed sendto (%s)\n", strerror(errno)));
+                       DEBUG(DEBUG_ERR,
+                             ("Failed sendto (%s)\n", strerror(saved_errno)));
                        return -1;
                }
                break;
@@ -286,6 +293,9 @@ int ctdb_sys_read_tcp_packet(int s, void *private_data,
                return -1;
        }
 
+       ZERO_STRUCTP(src);
+       ZERO_STRUCTP(dst);
+
        /* Ethernet */
        eth = (struct ether_header *)pkt;