fix #3348: NFS: select correct transport to check for service
Suggested-by: Thomas Lamprecht <t.lamprecht@proxmox.com> Signed-off-by: Fabian Ebner <f.ebner@proxmox.com>
This commit is contained in:
committed by
Thomas Lamprecht
parent
dfa374d320
commit
342a56805c
@ -5,6 +5,8 @@ use warnings;
|
|||||||
use IO::File;
|
use IO::File;
|
||||||
use Net::IP;
|
use Net::IP;
|
||||||
use File::Path;
|
use File::Path;
|
||||||
|
|
||||||
|
use PVE::Network;
|
||||||
use PVE::Tools qw(run_command);
|
use PVE::Tools qw(run_command);
|
||||||
use PVE::ProcFSTools;
|
use PVE::ProcFSTools;
|
||||||
use PVE::Storage::Plugin;
|
use PVE::Storage::Plugin;
|
||||||
@ -164,9 +166,16 @@ sub check_connection {
|
|||||||
|
|
||||||
my $cmd;
|
my $cmd;
|
||||||
if (defined($opts) && $opts =~ /vers=4.*/) {
|
if (defined($opts) && $opts =~ /vers=4.*/) {
|
||||||
|
my $ip = PVE::JSONSchema::pve_verify_ip($server, 1);
|
||||||
|
if (!defined($ip)) {
|
||||||
|
$ip = PVE::Network::get_ip_from_hostname($server);
|
||||||
|
}
|
||||||
|
|
||||||
|
my $transport = PVE::JSONSchema::pve_verify_ipv4($ip, 1) ? 'tcp' : 'tcp6';
|
||||||
|
|
||||||
# nfsv4 uses a pseudo-filesystem always beginning with /
|
# nfsv4 uses a pseudo-filesystem always beginning with /
|
||||||
# no exports are listed
|
# no exports are listed
|
||||||
$cmd = ['/usr/sbin/rpcinfo', '-T', 'tcp', $server, 'nfs', '4'];
|
$cmd = ['/usr/sbin/rpcinfo', '-T', $transport, $ip, 'nfs', '4'];
|
||||||
} else {
|
} else {
|
||||||
$cmd = ['/sbin/showmount', '--no-headers', '--exports', $server];
|
$cmd = ['/sbin/showmount', '--no-headers', '--exports', $server];
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user