From 48029a3a0b854c50ef1b5e0b1cb27ba5f6220d9d Mon Sep 17 00:00:00 2001 From: dscho Date: Thu, 31 Jul 2003 16:48:23 +0000 Subject: rfbLog can be overridden; EINTR on read/write means just try again --- sockets.c | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'sockets.c') diff --git a/sockets.c b/sockets.c index 5cb833f..0c6173f 100644 --- a/sockets.c +++ b/sockets.c @@ -415,6 +415,9 @@ ReadExactTimeout(rfbClientPtr cl, char* buf, int len, int timeout) #ifdef WIN32 errno = WSAGetLastError(); #endif + if (errno == EINTR) + continue; + if (errno != EWOULDBLOCK && errno != EAGAIN) { return n; } @@ -478,6 +481,9 @@ WriteExact(cl, buf, len) #ifdef WIN32 errno = WSAGetLastError(); #endif + if (errno == EINTR) + continue; + if (errno != EWOULDBLOCK && errno != EAGAIN) { UNLOCK(cl->outputMutex); return n; -- cgit v1.2.1