summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorBruce Momjian2003-03-29 05:00:15 +0000
committerBruce Momjian2003-03-29 05:00:15 +0000
commitbf7ca0a7697551aba8e1d8a130c803d4f2c011d4 (patch)
treeac51ef622ee983de1231a1508d94b538c3d6716e /src
parent0184db50a07a387674c6abe2e22cd33f95d32f12 (diff)
[ Backpatch to 7.3.X.]
SSL_read/write can error needing ERROR_WANT_READ or ERROR_WANT_WRITE.
Diffstat (limited to 'src')
-rw-r--r--src/backend/libpq/be-secure.c8
1 files changed, 7 insertions, 1 deletions
diff --git a/src/backend/libpq/be-secure.c b/src/backend/libpq/be-secure.c
index 99646bcb9c3..d854c6c07ce 100644
--- a/src/backend/libpq/be-secure.c
+++ b/src/backend/libpq/be-secure.c
@@ -11,7 +11,7 @@
*
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/backend/libpq/be-secure.c,v 1.27 2003/03/29 03:56:44 momjian Exp $
+ * $Header: /cvsroot/pgsql/src/backend/libpq/be-secure.c,v 1.28 2003/03/29 05:00:15 momjian Exp $
*
* Since the server static private key ($DataDir/server.key)
* will normally be stored unencrypted so that the database
@@ -285,6 +285,9 @@ secure_read(Port *port, void *ptr, size_t len)
case SSL_ERROR_WANT_READ:
n = secure_read(port, ptr, len);
break;
+ case SSL_ERROR_WANT_WRITE:
+ n = secure_write(port, ptr, len);
+ break;
case SSL_ERROR_SYSCALL:
if (n == -1)
elog(COMMERROR, "SSL SYSCALL error: %s", strerror(errno));
@@ -337,6 +340,9 @@ secure_write(Port *port, void *ptr, size_t len)
case SSL_ERROR_NONE:
port->count += n;
break;
+ case SSL_ERROR_WANT_READ:
+ n = secure_read(port, ptr, len);
+ break;
case SSL_ERROR_WANT_WRITE:
n = secure_write(port, ptr, len);
break;