|
|
8d720de |
--- postgresql-9.2.4/src/interfaces/libpq/fe-connect.c.orig 2013-08-15 09:08:59.850609595 -0500
|
|
|
8d720de |
+++ postgresql-9.2.4/src/interfaces/libpq/fe-connect.c 2013-08-15 09:42:59.001463906 -0500
|
|
|
8d720de |
@@ -1778,10 +1778,16 @@
|
|
|
8d720de |
if (connect(conn->sock, addr_cur->ai_addr,
|
|
|
8d720de |
addr_cur->ai_addrlen) < 0)
|
|
|
8d720de |
{
|
|
|
8d720de |
+#ifndef WIN32
|
|
|
8d720de |
if (SOCK_ERRNO == EINPROGRESS ||
|
|
|
8d720de |
SOCK_ERRNO == EWOULDBLOCK ||
|
|
|
8d720de |
SOCK_ERRNO == EINTR ||
|
|
|
8d720de |
+#else
|
|
|
8d720de |
+ if (SOCK_ERRNO == WSAEINPROGRESS ||
|
|
|
8d720de |
+ SOCK_ERRNO == WSAEWOULDBLOCK ||
|
|
|
8d720de |
+ SOCK_ERRNO == WSAEINTR ||
|
|
|
8d720de |
SOCK_ERRNO == 0)
|
|
|
8d720de |
+#endif
|
|
|
8d720de |
{
|
|
|
8d720de |
/*
|
|
|
8d720de |
* This is fine - we're in non-blocking mode, and
|
|
|
8d720de |
--- postgresql-9.2.4/src/interfaces/libpq/fe-misc.c.orig 2013-04-01 13:20:36.000000000 -0500
|
|
|
8d720de |
+++ postgresql-9.2.4/src/interfaces/libpq/fe-misc.c 2013-08-15 10:08:03.190928760 -0500
|
|
|
8d720de |
@@ -656,7 +656,11 @@
|
|
|
8d720de |
conn->inBufSize - conn->inEnd);
|
|
|
8d720de |
if (nread < 0)
|
|
|
8d720de |
{
|
|
|
8d720de |
+#ifndef WIN32
|
|
|
8d720de |
if (SOCK_ERRNO == EINTR)
|
|
|
8d720de |
+#else
|
|
|
8d720de |
+ if (SOCK_ERRNO == WSAEINTR)
|
|
|
8d720de |
+#endif
|
|
|
8d720de |
goto retry3;
|
|
|
8d720de |
/* Some systems return EAGAIN/EWOULDBLOCK for no data */
|
|
|
8d720de |
#ifdef EAGAIN
|
|
|
8d720de |
@@ -664,12 +668,20 @@
|
|
|
8d720de |
return someread;
|
|
|
8d720de |
#endif
|
|
|
8d720de |
#if defined(EWOULDBLOCK) && (!defined(EAGAIN) || (EWOULDBLOCK != EAGAIN))
|
|
|
8d720de |
+#ifndef WIN32
|
|
|
8d720de |
if (SOCK_ERRNO == EWOULDBLOCK)
|
|
|
8d720de |
+#else
|
|
|
8d720de |
+ if (SOCK_ERRNO == WSAEWOULDBLOCK)
|
|
|
8d720de |
+#endif
|
|
|
8d720de |
return someread;
|
|
|
8d720de |
#endif
|
|
|
8d720de |
/* We might get ECONNRESET here if using TCP and backend died */
|
|
|
8d720de |
#ifdef ECONNRESET
|
|
|
8d720de |
+#ifndef WIN32
|
|
|
8d720de |
if (SOCK_ERRNO == ECONNRESET)
|
|
|
8d720de |
+#else
|
|
|
8d720de |
+ if (SOCK_ERRNO == WSAECONNRESET)
|
|
|
8d720de |
+#endif
|
|
|
8d720de |
goto definitelyFailed;
|
|
|
8d720de |
#endif
|
|
|
8d720de |
/* pqsecure_read set the error message for us */
|
|
|
8d720de |
@@ -749,7 +761,11 @@
|
|
|
8d720de |
conn->inBufSize - conn->inEnd);
|
|
|
8d720de |
if (nread < 0)
|
|
|
8d720de |
{
|
|
|
8d720de |
+#ifndef WIN32
|
|
|
8d720de |
if (SOCK_ERRNO == EINTR)
|
|
|
8d720de |
+#else
|
|
|
8d720de |
+ if (SOCK_ERRNO == WSAEINTR)
|
|
|
8d720de |
+#endif
|
|
|
8d720de |
goto retry4;
|
|
|
8d720de |
/* Some systems return EAGAIN/EWOULDBLOCK for no data */
|
|
|
8d720de |
#ifdef EAGAIN
|
|
|
8d720de |
@@ -757,12 +773,20 @@
|
|
|
8d720de |
return 0;
|
|
|
8d720de |
#endif
|
|
|
8d720de |
#if defined(EWOULDBLOCK) && (!defined(EAGAIN) || (EWOULDBLOCK != EAGAIN))
|
|
|
8d720de |
+#ifndef WIN32
|
|
|
8d720de |
if (SOCK_ERRNO == EWOULDBLOCK)
|
|
|
8d720de |
+#else
|
|
|
8d720de |
+ if (SOCK_ERRNO == WSAEWOULDBLOCK)
|
|
|
8d720de |
+#endif
|
|
|
8d720de |
return 0;
|
|
|
8d720de |
#endif
|
|
|
8d720de |
/* We might get ECONNRESET here if using TCP and backend died */
|
|
|
8d720de |
#ifdef ECONNRESET
|
|
|
8d720de |
+#ifndef WIN32
|
|
|
8d720de |
if (SOCK_ERRNO == ECONNRESET)
|
|
|
8d720de |
+#else
|
|
|
8d720de |
+ if (SOCK_ERRNO == WSAECONNRESET)
|
|
|
8d720de |
+#endif
|
|
|
8d720de |
goto definitelyFailed;
|
|
|
8d720de |
#endif
|
|
|
8d720de |
/* pqsecure_read set the error message for us */
|
|
|
8d720de |
@@ -838,10 +862,18 @@
|
|
|
8d720de |
break;
|
|
|
8d720de |
#endif
|
|
|
8d720de |
#if defined(EWOULDBLOCK) && (!defined(EAGAIN) || (EWOULDBLOCK != EAGAIN))
|
|
|
8d720de |
+#ifndef WIN32
|
|
|
8d720de |
case EWOULDBLOCK:
|
|
|
8d720de |
+#else
|
|
|
8d720de |
+ case WSAEWOULDBLOCK:
|
|
|
8d720de |
+#endif
|
|
|
8d720de |
break;
|
|
|
8d720de |
#endif
|
|
|
8d720de |
+#ifndef WIN32
|
|
|
8d720de |
case EINTR:
|
|
|
8d720de |
+#else
|
|
|
8d720de |
+ case WSAEINTR:
|
|
|
8d720de |
+#endif
|
|
|
8d720de |
continue;
|
|
|
8d720de |
|
|
|
8d720de |
default:
|
|
|
8d720de |
--- postgresql-9.2.4/src/interfaces/libpq/fe-secure.c.orig 2013-08-15 10:10:44.039355056 -0500
|
|
|
8d720de |
+++ postgresql-9.2.4/src/interfaces/libpq/fe-secure.c 2013-08-15 10:22:57.767650717 -0500
|
|
|
8d720de |
@@ -433,12 +433,20 @@
|
|
|
8d720de |
#if defined(EWOULDBLOCK) && (!defined(EAGAIN) || (EWOULDBLOCK != EAGAIN))
|
|
|
8d720de |
case EWOULDBLOCK:
|
|
|
8d720de |
#endif
|
|
|
8d720de |
+#ifndef WIN32
|
|
|
8d720de |
case EINTR:
|
|
|
8d720de |
+#else
|
|
|
8d720de |
+ case WSAEWOULDBLOCK:
|
|
|
8d720de |
+ case WSAEINTR:
|
|
|
8d720de |
+#endif
|
|
|
8d720de |
/* no error message, caller is expected to retry */
|
|
|
8d720de |
break;
|
|
|
8d720de |
|
|
|
8d720de |
#ifdef ECONNRESET
|
|
|
8d720de |
case ECONNRESET:
|
|
|
8d720de |
+#ifdef WIN32
|
|
|
8d720de |
+ case WSAECONNRESET:
|
|
|
8d720de |
+#endif
|
|
|
8d720de |
printfPQExpBuffer(&conn->errorMessage,
|
|
|
8d720de |
libpq_gettext(
|
|
|
8d720de |
"server closed the connection unexpectedly\n"
|
|
|
8d720de |
@@ -617,7 +625,12 @@
|
|
|
8d720de |
#if defined(EWOULDBLOCK) && (!defined(EAGAIN) || (EWOULDBLOCK != EAGAIN))
|
|
|
8d720de |
case EWOULDBLOCK:
|
|
|
8d720de |
#endif
|
|
|
8d720de |
+#ifndef WIN32
|
|
|
8d720de |
case EINTR:
|
|
|
8d720de |
+#else
|
|
|
8d720de |
+ case WSAEWOULDBLOCK:
|
|
|
8d720de |
+ case WSAEINTR:
|
|
|
8d720de |
+#endif
|
|
|
8d720de |
/* no error message, caller is expected to retry */
|
|
|
8d720de |
break;
|
|
|
8d720de |
|
|
|
8d720de |
@@ -629,6 +642,9 @@
|
|
|
8d720de |
#ifdef ECONNRESET
|
|
|
8d720de |
case ECONNRESET:
|
|
|
8d720de |
#endif
|
|
|
8d720de |
+#ifdef WIN32
|
|
|
8d720de |
+ case WSAECONNRESET:
|
|
|
8d720de |
+#endif
|
|
|
8d720de |
printfPQExpBuffer(&conn->errorMessage,
|
|
|
8d720de |
libpq_gettext(
|
|
|
8d720de |
"server closed the connection unexpectedly\n"
|