X-Git-Url: https://asedeno.scripts.mit.edu/gitweb/?a=blobdiff_plain;f=unix%2Fuxcons.c;h=716f3fc533d653ccb0b6fa9751124d3df0a7d22f;hb=095072fa46b2d7b8beafaddb2f873d2f500a1e10;hp=b9fd67fe927423c7587be969ff545247218ff1fd;hpb=940a82fd377757ffb792648f561dfa70d8d99b01;p=PuTTY.git diff --git a/unix/uxcons.c b/unix/uxcons.c index b9fd67fe..716f3fc5 100644 --- a/unix/uxcons.c +++ b/unix/uxcons.c @@ -12,6 +12,10 @@ #include #include #include +#include +#ifndef HAVE_NO_SYS_SELECT_H +#include +#endif #include "putty.h" #include "storage.h" @@ -97,7 +101,9 @@ static int block_and_read(int fd, void *buf, size_t len) fd_set rfds; FD_ZERO(&rfds); FD_SET(fd, &rfds); - ret = select(fd+1, &rfds, NULL, NULL, NULL); + do { + ret = select(fd+1, &rfds, NULL, NULL, NULL); + } while (ret < 0 && errno == EINTR); assert(ret != 0); if (ret < 0) return ret;