From: Matt Caswell Date: Mon, 16 May 2016 15:54:28 +0000 (+0100) Subject: Workaround an IO::Socket::IP bug X-Git-Tag: OpenSSL_1_1_0-pre6~825 X-Git-Url: https://git.librecmc.org/?a=commitdiff_plain;h=6ae545248109710365189047ba945700ab8afff3;p=oweals%2Fopenssl.git Workaround an IO::Socket::IP bug Workaround an apparent IO:Socket::IP bug where a seemingly valid server socket is being returned even though a valid connection does not exist. This causes the tests to intermittently hang. We additionally check that the peerport looks ok to verify that the returned socket looks usable. Reviewed-by: Richard Levitte --- diff --git a/util/TLSProxy/Proxy.pm b/util/TLSProxy/Proxy.pm index 950fd90749..3b03ea9eeb 100644 --- a/util/TLSProxy/Proxy.pm +++ b/util/TLSProxy/Proxy.pm @@ -236,7 +236,9 @@ sub clientstart }; $retry--; - if ($@ || !defined($server_sock)) { + #Some buggy IP factories can return a defined server_sock that hasn't + #actually connected, so we check peerport too + if ($@ || !defined($server_sock) || !defined($server_sock->peerport)) { $server_sock->close() if defined($server_sock); undef $server_sock; if ($retry) {