summaryrefslogtreecommitdiff
path: root/ctdb/common/system_gnu.c
diff options
context:
space:
mode:
Diffstat (limited to 'ctdb/common/system_gnu.c')
-rw-r--r--ctdb/common/system_gnu.c15
1 files changed, 11 insertions, 4 deletions
diff --git a/ctdb/common/system_gnu.c b/ctdb/common/system_gnu.c
index 0eed47e4e05..603345d0755 100644
--- a/ctdb/common/system_gnu.c
+++ b/ctdb/common/system_gnu.c
@@ -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;