From: Matt Caswell Date: Thu, 31 Aug 2017 08:39:26 +0000 (+0100) Subject: Fix Proxy where a timeout occurs waiting for both client and server X-Git-Tag: OpenSSL_1_1_1-pre1~702 X-Git-Url: https://git.openssl.org/gitweb/?p=openssl.git;a=commitdiff_plain;h=4130016623d043c7279f39937a73c24200288a73;hp=6e5a853bda24e8aece325ecf5aa68b8ea832e414 Fix Proxy where a timeout occurs waiting for both client and server Reviewed-by: Rich Salz (Merged from https://github.com/openssl/openssl/pull/4305) --- diff --git a/util/perl/TLSProxy/Proxy.pm b/util/perl/TLSProxy/Proxy.pm index c92652e78f..f3e76bf35c 100644 --- a/util/perl/TLSProxy/Proxy.pm +++ b/util/perl/TLSProxy/Proxy.pm @@ -297,8 +297,11 @@ sub clientstart while( (!(TLSProxy::Message->end) || (defined $self->sessionfile() && (-s $self->sessionfile()) == 0)) - && $ctr < 10 - && (@ready = $sel->can_read(1))) { + && $ctr < 10) { + if (!(@ready = $sel->can_read(1))) { + $ctr++; + next; + } foreach my $hand (@ready) { if ($hand == $server_sock) { $server_sock->sysread($indata, 16384) or goto END; @@ -311,7 +314,7 @@ sub clientstart $server_sock->syswrite($indata); $ctr = 0; } else { - $ctr++ + die "Unexpected handle"; } } }