diff options
author | Matt Caswell <matt@openssl.org> | 2016-02-12 13:33:45 +0000 |
---|---|---|
committer | Matt Caswell <matt@openssl.org> | 2016-03-07 21:39:27 +0000 |
commit | fd068d50c4e19b6e860a303a6bec1c1803f5465e (patch) | |
tree | e12aa7b9a5fa9ea5d5a0c584746089c471ed271b /apps | |
parent | 49580f25b3e6239a277c9fc2708c0354f419ec17 (diff) |
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>
Diffstat (limited to 'apps')
-rw-r--r-- | apps/s_client.c | 2 | ||||
-rw-r--r-- | apps/s_server.c | 4 |
2 files changed, 3 insertions, 3 deletions
diff --git a/apps/s_client.c b/apps/s_client.c index 27c8be86a1..ab22d4211f 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 22e917542b..6e1c5989c5 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: |