Since IO::Socket::UNIX is part of core perl, it's not enough to
"eval use" it. Instead trap the error that occurs when creating the socket on platforms that does not support it.
This commit is contained in:
parent
079fa53f45
commit
1737e14c96
@ -51,15 +51,6 @@ BEGIN {
|
||||
}
|
||||
}
|
||||
|
||||
BEGIN {
|
||||
if (eval "use IO::Socket::UNIX; 1") {
|
||||
eval 'sub HAVE_UNIX_SOCKET { 1 }';
|
||||
}
|
||||
else {
|
||||
eval 'sub HAVE_UNIX_SOCKET { 0 }';
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
#
|
||||
# native_path
|
||||
@ -105,14 +96,17 @@ sub check_socket_path_length {
|
||||
my ($path)= @_;
|
||||
my $truncated= 0;
|
||||
|
||||
if (HAVE_UNIX_SOCKET){
|
||||
require IO::Socket::UNIX;
|
||||
|
||||
my $sock = new IO::Socket::UNIX
|
||||
(
|
||||
Local => $path,
|
||||
Listen => 1,
|
||||
) or die $!;
|
||||
);
|
||||
if (!defined $sock){
|
||||
# Could not create a UNIX domain socket
|
||||
return 0; # Ok, will not be used by mysqld either
|
||||
}
|
||||
if ($path ne $sock->hostpath()){
|
||||
# Path was truncated
|
||||
$truncated= 1;
|
||||
@ -121,11 +115,8 @@ sub check_socket_path_length {
|
||||
print "hostpath: '", $sock->hostpath(),
|
||||
"', length: ", length($sock->hostpath()), "\n";
|
||||
}
|
||||
$sock= undef;
|
||||
unlink($path);
|
||||
return $truncated;
|
||||
};
|
||||
# All paths OK!
|
||||
$sock= undef; # Close socket
|
||||
unlink($path); # Remove the physical file
|
||||
return $truncated;
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user