summaryrefslogtreecommitdiff
path: root/src/interfaces/libpq/fe-misc.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/interfaces/libpq/fe-misc.c')
-rw-r--r--src/interfaces/libpq/fe-misc.c24
1 files changed, 17 insertions, 7 deletions
diff --git a/src/interfaces/libpq/fe-misc.c b/src/interfaces/libpq/fe-misc.c
index 0b189453dda..0c5c90ed895 100644
--- a/src/interfaces/libpq/fe-misc.c
+++ b/src/interfaces/libpq/fe-misc.c
@@ -639,7 +639,9 @@ retry3:
if (SOCK_ERRNO == ECONNRESET)
goto definitelyFailed;
#endif
- printfPQExpBuffer(&conn->errorMessage,
+ /* in SSL mode, pqsecure_read set the error message */
+ if (conn->ssl == NULL)
+ printfPQExpBuffer(&conn->errorMessage,
libpq_gettext("could not receive data from server: %s\n"),
SOCK_STRERROR(SOCK_ERRNO, sebuf, sizeof(sebuf)));
return -1;
@@ -729,7 +731,9 @@ retry4:
if (SOCK_ERRNO == ECONNRESET)
goto definitelyFailed;
#endif
- printfPQExpBuffer(&conn->errorMessage,
+ /* in SSL mode, pqsecure_read set the error message */
+ if (conn->ssl == NULL)
+ printfPQExpBuffer(&conn->errorMessage,
libpq_gettext("could not receive data from server: %s\n"),
SOCK_STRERROR(SOCK_ERRNO, sebuf, sizeof(sebuf)));
return -1;
@@ -745,8 +749,10 @@ retry4:
* means the connection has been closed. Cope.
*/
definitelyFailed:
- printfPQExpBuffer(&conn->errorMessage,
- libpq_gettext(
+ /* in SSL mode, pqsecure_read set the error message */
+ if (conn->ssl == NULL)
+ printfPQExpBuffer(&conn->errorMessage,
+ libpq_gettext(
"server closed the connection unexpectedly\n"
"\tThis probably means the server terminated abnormally\n"
"\tbefore or while processing the request.\n"));
@@ -823,8 +829,10 @@ pqSendSome(PGconn *conn, int len)
#ifdef ECONNRESET
case ECONNRESET:
#endif
- printfPQExpBuffer(&conn->errorMessage,
- libpq_gettext(
+ /* in SSL mode, pqsecure_write set the error message */
+ if (conn->ssl == NULL)
+ printfPQExpBuffer(&conn->errorMessage,
+ libpq_gettext(
"server closed the connection unexpectedly\n"
"\tThis probably means the server terminated abnormally\n"
"\tbefore or while processing the request.\n"));
@@ -841,7 +849,9 @@ pqSendSome(PGconn *conn, int len)
return -1;
default:
- printfPQExpBuffer(&conn->errorMessage,
+ /* in SSL mode, pqsecure_write set the error message */
+ if (conn->ssl == NULL)
+ printfPQExpBuffer(&conn->errorMessage,
libpq_gettext("could not send data to server: %s\n"),
SOCK_STRERROR(SOCK_ERRNO, sebuf, sizeof(sebuf)));
/* We don't assume it's a fatal error... */