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_0h~128 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=3469f386316cb0e520fa513d45e2b1f73a692449;p=openssl 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) (cherry picked from commit e02d5886636095c26a8bff1bf8344bd0bba7ccff) --- diff --git a/util/perl/TLSProxy/Proxy.pm b/util/perl/TLSProxy/Proxy.pm index e30b0aaf67..6ed13e3109 100644 --- a/util/perl/TLSProxy/Proxy.pm +++ b/util/perl/TLSProxy/Proxy.pm @@ -178,13 +178,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";