diff --git a/src/backend/libpq/be-secure.c b/src/backend/libpq/be-secure.c index e3a7abc205e..b3a4416f244 100644 --- a/src/backend/libpq/be-secure.c +++ b/src/backend/libpq/be-secure.c @@ -11,7 +11,7 @@ * * * IDENTIFICATION - * $PostgreSQL: pgsql/src/backend/libpq/be-secure.c,v 1.83.2.2 2009/12/09 06:37:25 mha Exp $ + * $PostgreSQL: pgsql/src/backend/libpq/be-secure.c,v 1.83.2.3 2009/12/30 03:46:01 tgl Exp $ * * Since the server static private key ($DataDir/server.key) * will normally be stored unencrypted so that the database @@ -269,6 +269,7 @@ secure_read(Port *port, void *ptr, size_t len) int err; rloop: + errno = 0; n = SSL_read(port->ssl, ptr, len); err = SSL_get_error(port->ssl, n); switch (err) @@ -363,6 +364,7 @@ secure_write(Port *port, void *ptr, size_t len) } wloop: + errno = 0; n = SSL_write(port->ssl, ptr, len); err = SSL_get_error(port->ssl, n); switch (err) diff --git a/src/interfaces/libpq/fe-secure.c b/src/interfaces/libpq/fe-secure.c index a1aa0463407..9c4f636d3e7 100644 --- a/src/interfaces/libpq/fe-secure.c +++ b/src/interfaces/libpq/fe-secure.c @@ -11,7 +11,7 @@ * * * IDENTIFICATION - * $PostgreSQL: pgsql/src/interfaces/libpq/fe-secure.c,v 1.102.2.2 2009/12/09 06:37:25 mha Exp $ + * $PostgreSQL: pgsql/src/interfaces/libpq/fe-secure.c,v 1.102.2.3 2009/12/30 03:46:01 tgl Exp $ * * NOTES * [ Most of these notes are wrong/obsolete, but perhaps not all ] @@ -316,6 +316,7 @@ pqsecure_read(PGconn *conn, void *ptr, size_t len) DISABLE_SIGPIPE(return -1); rloop: + SOCK_ERRNO_SET(0); n = SSL_read(conn->ssl, ptr, len); err = SSL_get_error(conn->ssl, n); switch (err) @@ -400,6 +401,7 @@ pqsecure_write(PGconn *conn, const void *ptr, size_t len) { int err; + SOCK_ERRNO_SET(0); n = SSL_write(conn->ssl, ptr, len); err = SSL_get_error(conn->ssl, n); switch (err)