aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMatt Caswell <matt@openssl.org>2016-02-12 13:33:45 +0000
committerMatt Caswell <matt@openssl.org>2016-03-07 21:39:27 +0000
commitfd068d50c4e19b6e860a303a6bec1c1803f5465e (patch)
treee12aa7b9a5fa9ea5d5a0c584746089c471ed271b
parent49580f25b3e6239a277c9fc2708c0354f419ec17 (diff)
downloadopenssl-fd068d50c4e19b6e860a303a6bec1c1803f5465e.zip
openssl-fd068d50c4e19b6e860a303a6bec1c1803f5465e.tar.gz
openssl-fd068d50c4e19b6e860a303a6bec1c1803f5465e.tar.bz2
Ensure s_client and s_server work when read_ahead is set
Previously s_client and s_server relied on using SSL_pending() which does not take into account read_ahead. For read pipelining to work, read_ahead gets set automatically. Therefore s_client and s_server have been converted to use SSL_has_pending() instead. Reviewed-by: Tim Hudson <tjh@openssl.org>
-rw-r--r--apps/s_client.c2
-rw-r--r--apps/s_server.c4
2 files changed, 3 insertions, 3 deletions
diff --git a/apps/s_client.c b/apps/s_client.c
index 27c8be8..ab22d42 100644
--- a/apps/s_client.c
+++ b/apps/s_client.c
@@ -2183,7 +2183,7 @@ int s_client_main(int argc, char **argv)
}
}
- ssl_pending = read_ssl && SSL_pending(con);
+ ssl_pending = read_ssl && SSL_has_pending(con);
if (!ssl_pending) {
#if !defined(OPENSSL_SYS_WINDOWS) && !defined(OPENSSL_SYS_MSDOS) && !defined(OPENSSL_SYS_NETWARE)
diff --git a/apps/s_server.c b/apps/s_server.c
index 22e9175..6e1c598 100644
--- a/apps/s_server.c
+++ b/apps/s_server.c
@@ -2213,7 +2213,7 @@ static int sv_body(int s, int stype, unsigned char *context)
int read_from_sslcon;
read_from_terminal = 0;
- read_from_sslcon = SSL_pending(con)
+ read_from_sslcon = SSL_has_pending(con)
|| (async && SSL_waiting_for_async(con));
if (!read_from_sslcon) {
@@ -2451,7 +2451,7 @@ static int sv_body(int s, int stype, unsigned char *context)
ascii2ebcdic(buf, buf, i);
#endif
raw_write_stdout(buf, (unsigned int)i);
- if (SSL_pending(con))
+ if (SSL_has_pending(con))
goto again;
break;
case SSL_ERROR_WANT_ASYNC: