From: Richard Levitte Date: Thu, 18 Jan 2018 09:54:48 +0000 (+0100) Subject: TLSProxy::Proxy: Don't use ReuseAddr on Windows X-Git-Tag: OpenSSL_1_1_1-pre1~183 X-Git-Url: https://git.librecmc.org/?a=commitdiff_plain;h=e02d5886636095c26a8bff1bf8344bd0bba7ccff;p=oweals%2Fopenssl.git TLSProxy::Proxy: Don't use ReuseAddr on Windows On Windows, we sometimes see a behavior with SO_REUSEADDR where there remains lingering listening sockets on the same address and port as a newly created one. An easy solution is not to use ReuseAddr on Windows. Thanks Bernd Edlinger for the suggestion. Reviewed-by: Bernd Edlinger (Merged from https://github.com/openssl/openssl/pull/5103) --- diff --git a/util/perl/TLSProxy/Proxy.pm b/util/perl/TLSProxy/Proxy.pm index c29f44056f..8c7b6d6a82 100644 --- a/util/perl/TLSProxy/Proxy.pm +++ b/util/perl/TLSProxy/Proxy.pm @@ -189,13 +189,15 @@ sub clientstart # Create the Proxy socket my $proxaddr = $self->proxy_addr; $proxaddr =~ s/[\[\]]//g; # Remove [ and ] - my $proxy_sock = $IP_factory->( + my @proxyargs = ( LocalHost => $proxaddr, LocalPort => $self->proxy_port, Proto => "tcp", Listen => SOMAXCONN, - ReuseAddr => 1 - ); + ); + push @proxyargs, ReuseAddr => 1 + unless $^O eq "MSWin32"; + my $proxy_sock = $IP_factory->(@proxyargs); if ($proxy_sock) { print "Proxy started on port ".$self->proxy_port."\n";