mirror of
https://git.proxmox.com/git/qemu-server
synced 2025-08-11 12:15:17 +00:00
fix #1229: more explicit spice port allocation
We cannot look for ports on "any" wildcard address while letting qemu bind to "localhost", this may lead to a qemu process occupying ::1 while the next search successfully finds the same port available for IPv4's '*' address. Instead, we now lookup the IP of the desired family for 'localhost'. Note that while we could simply be hardcoding ::1 or 127.0.0.1, with this code we are protocol agnostic.
This commit is contained in:
parent
81df48c940
commit
047122f352
@ -3151,9 +3151,12 @@ sub config_to_command {
|
||||
|
||||
my $nodename = PVE::INotify::nodename();
|
||||
my $pfamily = PVE::Tools::get_host_address_family($nodename);
|
||||
$spice_port = PVE::Tools::next_spice_port($pfamily);
|
||||
my @nodeaddrs = PVE::Tools::getaddrinfo_all('localhost', family => $pfamily);
|
||||
die "failed to get an ip address of type $pfamily for 'localhost'\n" if !@nodeaddrs;
|
||||
my $localhost = PVE::Network::addr_to_ip($nodeaddrs[0]->{addr});
|
||||
$spice_port = PVE::Tools::next_spice_port($pfamily, $localhost);
|
||||
|
||||
push @$devices, '-spice', "tls-port=${spice_port},addr=localhost,tls-ciphers=HIGH,seamless-migration=on";
|
||||
push @$devices, '-spice', "tls-port=${spice_port},addr=$localhost,tls-ciphers=HIGH,seamless-migration=on";
|
||||
|
||||
push @$devices, '-device', "virtio-serial,id=spice$pciaddr";
|
||||
push @$devices, '-chardev', "spicevmc,id=vdagent,name=vdagent";
|
||||
|
Loading…
Reference in New Issue
Block a user