diff --git a/tools/pingd.c b/tools/pingd.c index 5e64ba2..f1b5452 100644 --- a/tools/pingd.c +++ b/tools/pingd.c @@ -429,7 +429,7 @@ int process_icmp4_error(ping_node *node, struct sockaddr_in *whereto) rc = recvmsg(node->fd, &msg, MSG_ERRQUEUE|MSG_DONTWAIT); if (rc < 0 || rc < sizeof(icmph)) { - crm_perror(LOG_DEBUG, "No error message: %d", rc); + crm_perror(LOG_INFO, "No error message: %d", rc); return 0; } @@ -862,8 +862,14 @@ ping_read(ping_node *node, int *lenp) if(bytes < 0) { crm_perror(LOG_DEBUG, "Read failed"); - if (saved_errno != EAGAIN && saved_errno != EINTR) { - int rc = 0; + int rc = 0; + //if (saved_errno != EAGAIN && saved_errno != EINTR) { + if (saved_errno == EAGAIN || saved_errno == EINTR) { + crm_info("1: bytes=%d, errno=%d, rc=%d", bytes, errno, rc); + crm_info("Retrying..."); + goto retry; + + } else { if(node->type == AF_INET6) { rc = process_icmp6_error(node, (struct sockaddr_in6*)&(node->addr)); } else { @@ -871,6 +877,7 @@ ping_read(ping_node *node, int *lenp) } if(rc < 0) { + crm_info("2: bytes=%d, errno=%d, rc=%d", bytes, errno, rc); crm_info("Retrying..."); goto retry; } @@ -892,13 +899,18 @@ ping_read(ping_node *node, int *lenp) } if(rc < 0) { + crm_info("3: bytes=%d, errno=%d, rc=%d", bytes, errno, rc); crm_info("Retrying..."); goto retry; } else if(rc > 0) { crm_free(packet); return TRUE; - } + } else { + crm_info("4: bytes=%d, errno=%d, rc=%d", bytes, errno, rc); + crm_info("Retrying..."); + goto retry; + } } else { crm_err("Unexpected reply");