From: Matt Caswell Date: Mon, 23 Oct 2023 17:11:06 +0000 (+0100) Subject: Don't wait in select if we have data to write X-Git-Tag: openssl-3.2.0-beta1~14 X-Git-Url: http://git.ipfire.org/gitweb/?a=commitdiff_plain;h=95420a2500fe0d96fb44cf7d826a156433c50589;p=thirdparty%2Fopenssl.git Don't wait in select if we have data to write In s_client, when using quic, if we have data from the user to write then we shouldn't hang in "select" waiting for something to happen. Reviewed-by: Tomas Mraz Reviewed-by: Hugo Landau Reviewed-by: Paul Dale (Merged from https://github.com/openssl/openssl/pull/22480) --- diff --git a/apps/s_client.c b/apps/s_client.c index 5577a9e9038..8a7650223ca 100644 --- a/apps/s_client.c +++ b/apps/s_client.c @@ -2969,10 +2969,13 @@ int s_client_main(int argc, char **argv) } while (!write_ssl && cbuf_len == 0 && user_data_has_data(&user_data)); - if (cbuf_len > 0) + if (cbuf_len > 0) { read_tty = 0; - else + timeout.tv_sec = 0; + timeout.tv_usec = 0; + } else { read_tty = 1; + } } ssl_pending = read_ssl && SSL_has_pending(con); @@ -3266,6 +3269,7 @@ int s_client_main(int argc, char **argv) ret = 0; goto shut; } + if (i > 0 && !user_data_add(&user_data, i)) { ret = 0; goto shut;