summaryrefslogtreecommitdiffstats
path: root/sockets.c
diff options
context:
space:
mode:
authordscho <dscho>2003-07-31 16:48:23 +0000
committerdscho <dscho>2003-07-31 16:48:23 +0000
commit48029a3a0b854c50ef1b5e0b1cb27ba5f6220d9d (patch)
tree849e6c47158118d479544dd1cbcc1b4d47199060 /sockets.c
parentae5142bdbd98f8a196d166331fa193ea20599cd9 (diff)
downloadlibtdevnc-48029a3a0b854c50ef1b5e0b1cb27ba5f6220d9d.tar.gz
libtdevnc-48029a3a0b854c50ef1b5e0b1cb27ba5f6220d9d.zip
rfbLog can be overridden; EINTR on read/write means just try again
Diffstat (limited to 'sockets.c')
-rw-r--r--sockets.c6
1 files changed, 6 insertions, 0 deletions
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;