diff options
author | Heikki Linnakangas <heikki.linnakangas@iki.fi> | 2010-02-18 11:13:46 +0000 |
---|---|---|
committer | Heikki Linnakangas <heikki.linnakangas@iki.fi> | 2010-02-18 11:13:46 +0000 |
commit | 3e87ba6ef7ee381c46af6fa3871c366b947d87da (patch) | |
tree | 060d505d0530591af107083f621d303025e99a8f /src/backend/libpq/be-secure.c | |
parent | 1a1ad6320cd9696db643b4db4b38cb8c629b328f (diff) |
Fix pq_getbyte_if_available() function. It was confused on what it
returns if no data is immediately available. Patch by me with numerous
fixes from Fujii Masao and Magnus Hagander.
Diffstat (limited to 'src/backend/libpq/be-secure.c')
-rw-r--r-- | src/backend/libpq/be-secure.c | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/src/backend/libpq/be-secure.c b/src/backend/libpq/be-secure.c index ea6b16c13ba..94998999501 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.96 2010/01/15 09:19:02 heikki Exp $ + * $PostgreSQL: pgsql/src/backend/libpq/be-secure.c,v 1.97 2010/02/18 11:13:45 heikki Exp $ * * Since the server static private key ($DataDir/server.key) * will normally be stored unencrypted so that the database @@ -256,7 +256,11 @@ rloop: case SSL_ERROR_WANT_READ: case SSL_ERROR_WANT_WRITE: if (port->noblock) - return 0; + { + errno = EWOULDBLOCK; + n = -1; + break; + } #ifdef WIN32 pgwin32_waitforsinglesocket(SSL_get_fd(port->ssl), (err == SSL_ERROR_WANT_READ) ? |