--- postgresql-9.2.4/src/interfaces/libpq/fe-misc.c.orig 2013-04-01 13:20:36.000000000 -0500 +++ postgresql-9.2.4/src/interfaces/libpq/fe-misc.c 2013-08-15 10:08:03.190928760 -0500 @@ -656,7 +656,11 @@ conn->inBufSize - conn->inEnd); if (nread < 0) { +#ifndef WIN32 if (SOCK_ERRNO == EINTR) +#else + if (SOCK_ERRNO == WSAEINTR) +#endif goto retry3; /* Some systems return EAGAIN/EWOULDBLOCK for no data */ #ifdef EAGAIN @@ -664,12 +668,20 @@ return someread; #endif #if defined(EWOULDBLOCK) && (!defined(EAGAIN) || (EWOULDBLOCK != EAGAIN)) +#ifndef WIN32 if (SOCK_ERRNO == EWOULDBLOCK) +#else + if (SOCK_ERRNO == WSAEWOULDBLOCK) +#endif return someread; #endif /* We might get ECONNRESET here if using TCP and backend died */ #ifdef ECONNRESET +#ifndef WIN32 if (SOCK_ERRNO == ECONNRESET) +#else + if (SOCK_ERRNO == WSAECONNRESET) +#endif goto definitelyFailed; #endif /* pqsecure_read set the error message for us */ @@ -749,7 +761,11 @@ conn->inBufSize - conn->inEnd); if (nread < 0) { +#ifndef WIN32 if (SOCK_ERRNO == EINTR) +#else + if (SOCK_ERRNO == WSAEINTR) +#endif goto retry4; /* Some systems return EAGAIN/EWOULDBLOCK for no data */ #ifdef EAGAIN @@ -757,12 +773,20 @@ return 0; #endif #if defined(EWOULDBLOCK) && (!defined(EAGAIN) || (EWOULDBLOCK != EAGAIN)) +#ifndef WIN32 if (SOCK_ERRNO == EWOULDBLOCK) +#else + if (SOCK_ERRNO == WSAEWOULDBLOCK) +#endif return 0; #endif /* We might get ECONNRESET here if using TCP and backend died */ #ifdef ECONNRESET +#ifndef WIN32 if (SOCK_ERRNO == ECONNRESET) +#else + if (SOCK_ERRNO == WSAECONNRESET) +#endif goto definitelyFailed; #endif /* pqsecure_read set the error message for us */ @@ -838,10 +862,18 @@ break; #endif #if defined(EWOULDBLOCK) && (!defined(EAGAIN) || (EWOULDBLOCK != EAGAIN)) +#ifndef WIN32 case EWOULDBLOCK: +#else + case WSAEWOULDBLOCK: +#endif break; #endif +#ifndef WIN32 case EINTR: +#else + case WSAEINTR: +#endif continue; default: