From ec903d20e3b4c1a543dbf057055e4ddbfad4d59e Mon Sep 17 00:00:00 2001
From: Heikki Linnakangas <heikki.linnakangas@iki.fi>
Date: Thu, 7 Aug 2014 12:38:16 +0300
Subject: [PATCH] Improve comment.

Based on the old comment, it took me a while to figure out what the
problem was. The importnat detail is that SSL_read() can return WANT_READ
even though some raw data was received from the socket.
---
 src/interfaces/libpq/fe-misc.c | 7 ++++---
 1 file changed, 4 insertions(+), 3 deletions(-)

diff --git a/src/interfaces/libpq/fe-misc.c b/src/interfaces/libpq/fe-misc.c
index 7a213bf8390..a75db19ae43 100644
--- a/src/interfaces/libpq/fe-misc.c
+++ b/src/interfaces/libpq/fe-misc.c
@@ -744,9 +744,10 @@ retry3:
 	 * the file selected for reading already.
 	 *
 	 * In SSL mode it's even worse: SSL_read() could say WANT_READ and then
-	 * data could arrive before we make the pqReadReady() test.  So we must
-	 * play dumb and assume there is more data, relying on the SSL layer to
-	 * detect true EOF.
+	 * data could arrive before we make the pqReadReady() test, but the
+	 * second SSL_read() could still say WANT_READ because the data received
+	 * was not a complete SSL record.  So we must play dumb and assume there
+	 * is more data, relying on the SSL layer to detect true EOF.
 	 */
 
 #ifdef USE_SSL
-- 
GitLab