Skip to content

Commit bf7ca0a

Browse files
committed
[ Backpatch to 7.3.X.]
SSL_read/write can error needing ERROR_WANT_READ or ERROR_WANT_WRITE.
1 parent 0184db5 commit bf7ca0a

File tree

1 file changed

+7
-1
lines changed

1 file changed

+7
-1
lines changed

src/backend/libpq/be-secure.c

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111
*
1212
*
1313
* IDENTIFICATION
14-
* $Header: /cvsroot/pgsql/src/backend/libpq/be-secure.c,v 1.27 2003/03/29 03:56:44 momjian Exp $
14+
* $Header: /cvsroot/pgsql/src/backend/libpq/be-secure.c,v 1.28 2003/03/29 05:00:15 momjian Exp $
1515
*
1616
* Since the server static private key ($DataDir/server.key)
1717
* will normally be stored unencrypted so that the database
@@ -285,6 +285,9 @@ secure_read(Port *port, void *ptr, size_t len)
285285
case SSL_ERROR_WANT_READ:
286286
n = secure_read(port, ptr, len);
287287
break;
288+
case SSL_ERROR_WANT_WRITE:
289+
n = secure_write(port, ptr, len);
290+
break;
288291
case SSL_ERROR_SYSCALL:
289292
if (n == -1)
290293
elog(COMMERROR, "SSL SYSCALL error: %s", strerror(errno));
@@ -337,6 +340,9 @@ secure_write(Port *port, void *ptr, size_t len)
337340
case SSL_ERROR_NONE:
338341
port->count += n;
339342
break;
343+
case SSL_ERROR_WANT_READ:
344+
n = secure_read(port, ptr, len);
345+
break;
340346
case SSL_ERROR_WANT_WRITE:
341347
n = secure_write(port, ptr, len);
342348
break;

0 commit comments

Comments
 (0)