Mercurial > hg > nginx-tests
comparison lib/Test/Nginx.pm @ 973:7d7aef8b9f3a
Tests: revert 313e3f1905d4 and set reuse properly.
It is too late to use setsockopt(SO_REUSEADDR) after a socket is created
as bind() happens during socket construction, and fails if there is
a conflicting TIME-WAIT socket and SO_REUSEADDR is not set.
author | Maxim Dounin <mdounin@mdounin.ru> |
---|---|
date | Sun, 10 Jul 2016 18:57:12 +0300 |
parents | 313e3f1905d4 |
children | 6abe7be6d2c1 |
comparison
equal
deleted
inserted
replaced
972:313e3f1905d4 | 973:7d7aef8b9f3a |
---|---|
328 | 328 |
329 $s_tcp = IO::Socket::INET->new( | 329 $s_tcp = IO::Socket::INET->new( |
330 Proto => 'tcp', | 330 Proto => 'tcp', |
331 LocalAddr => '127.0.0.1:' . $port, | 331 LocalAddr => '127.0.0.1:' . $port, |
332 Listen => 1, | 332 Listen => 1, |
333 Reuse => ($^O ne 'MSWin32') | |
333 ) and last; | 334 ) and last; |
334 } | 335 } |
335 | 336 |
336 die "Port limit exceeded" unless defined $s_tcp and defined $s_udp; | 337 die "Port limit exceeded" unless defined $s_tcp and defined $s_udp; |
337 | |
338 $s_tcp->sockopt(SO_REUSEADDR, 1) if $^O ne 'MSWin32'; | |
339 | 338 |
340 $ports{$num} = { | 339 $ports{$num} = { |
341 port => $port, | 340 port => $port, |
342 socket => $opts{udp} ? $s_tcp : $s_udp | 341 socket => $opts{udp} ? $s_tcp : $s_udp |
343 }; | 342 }; |