diff --git a/netutils/ping/icmp_ping.c b/netutils/ping/icmp_ping.c index f13ca3aaf..d7e85ec35 100644 --- a/netutils/ping/icmp_ping.c +++ b/netutils/ping/icmp_ping.c @@ -307,6 +307,12 @@ void icmp_ping(FAR const struct ping_info_s *info) continue; } + if (priv->recvfd.revents & (POLLHUP | POLLERR)) + { + icmp_callback(&result, ICMP_E_POLL, ENETDOWN); + continue; + } + /* Get the ICMP response (ignoring the sender) */ priv->addrlen = sizeof(struct sockaddr_in);