Otherwise perl tries to bind+listen on a UDP socket if the
TCP socket fails - which is a waste since we're looking for
TCP ports.
Additionall since UDP doesn't support listen(), perl will
return EOPNOTSUPP instead of, say, EADDRINUSE. (We don't
care about the error in this code though.)
use warnings;
use POSIX qw(EINTR EEXIST EOPNOTSUPP);
use IO::Socket::IP;
-use Socket qw(AF_INET AF_INET6 AI_ALL AI_V4MAPPED AI_CANONNAME SOCK_DGRAM);
+use Socket qw(AF_INET AF_INET6 AI_ALL AI_V4MAPPED AI_CANONNAME SOCK_DGRAM
+ IPPROTO_TCP);
use IO::Select;
use File::Basename;
use File::Path qw(make_path);
my %sockargs = (Listen => 5,
ReuseAddr => 1,
Family => $family,
- Proto => 0,
+ Proto => IPPROTO_TCP,
GetAddrInfoFlags => 0);
$sockargs{LocalAddr} = $address if defined($address);