From bf7ca0a7697551aba8e1d8a130c803d4f2c011d4 Mon Sep 17 00:00:00 2001 From: Bruce Momjian Date: Sat, 29 Mar 2003 05:00:15 +0000 Subject: [PATCH] [ Backpatch to 7.3.X.] SSL_read/write can error needing ERROR_WANT_READ or ERROR_WANT_WRITE. --- src/backend/libpq/be-secure.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/backend/libpq/be-secure.c b/src/backend/libpq/be-secure.c index 99646bcb9c..d854c6c07c 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; -- 2.40.0