From 60a41d1368a9cee51f3c2c2c0469aa0f4fc77147 Mon Sep 17 00:00:00 2001 From: Dan Winship Date: Fri, 22 Oct 1999 12:53:48 +0000 Subject: return ETIMEDOUT after 60 seconds when waiting for a reply from zhm. (in particular, this makes attach eventually time out when trying to get filsrv subs if the zhm or zephyr servers aren't responding). --- lib/Zinternal.c | 12 ++++++++++++ 1 file changed, 12 insertions(+) (limited to 'lib/Zinternal.c') diff --git a/lib/Zinternal.c b/lib/Zinternal.c index 8efd05a..99b7de2 100644 --- a/lib/Zinternal.c +++ b/lib/Zinternal.c @@ -226,10 +226,22 @@ Code_t Z_ReadWait() char *slash; Code_t retval; register int i; + fd_set fds; + struct timeval tv; if (ZGetFD() < 0) return (ZERR_NOPORT); + FD_ZERO(&fds); + FD_SET(ZGetFD(), &fds); + tv.tv_sec = 60; + tv.tv_usec = 0; + + if (select(ZGetFD() + 1, &fds, NULL, NULL, &tv) < 0) + return (errno); + if (!FD_ISSET(ZGetFD(), &fds)) + return ETIMEDOUT; + from_len = sizeof(struct sockaddr_in); packet_len = recvfrom(ZGetFD(), packet, sizeof(packet), 0, -- cgit v1.2.3