[pve-devel] [PATCH] pass port family to next_*_port() calls

Wolfgang Bumiller w.bumiller at proxmox.com
Mon May 11 16:29:29 CEST 2015


---
 PVE/API2/Qemu.pm   | 10 ++++++----
 PVE/QemuMigrate.pm |  3 ++-
 PVE/QemuServer.pm  |  9 ++++++---
 3 files changed, 14 insertions(+), 8 deletions(-)

diff --git a/PVE/API2/Qemu.pm b/PVE/API2/Qemu.pm
index c0a6bc3..f0acb34 100644
--- a/PVE/API2/Qemu.pm
+++ b/PVE/API2/Qemu.pm
@@ -1299,17 +1299,19 @@ __PACKAGE__->register_method({
 	$sslcert = PVE::Tools::file_get_contents("/etc/pve/pve-root-ca.pem", 8192)
 	    if !$sslcert;
 
-	my $port = PVE::Tools::next_vnc_port();
-
-	my $remip;
+	my ($remip, $family);
 	my $remcmd = [];
 
 	if ($node ne 'localhost' && $node ne PVE::INotify::nodename()) {
-	    $remip = PVE::Cluster::remote_node_ip($node);
+	    ($remip, $family) = PVE::Cluster::remote_node_ip_and_family($node);
 	    # NOTE: kvm VNC traffic is already TLS encrypted or is known unsecure
 	    $remcmd = ['/usr/bin/ssh', '-T', '-o', 'BatchMode=yes', $remip];
+	} else {
+	    $family = PVE::Tools::get_host_address_family($node);
 	}
 
+	my $port = PVE::Tools::next_vnc_port(Family => $family);
+
 	my $timeout = 10;
 
 	my $realcmd = sub {
diff --git a/PVE/QemuMigrate.pm b/PVE/QemuMigrate.pm
index f6eb3f5..6e81ac8 100644
--- a/PVE/QemuMigrate.pm
+++ b/PVE/QemuMigrate.pm
@@ -354,7 +354,8 @@ sub phase2 {
 
     ## create tunnel to remote port
     $self->log('info', "starting ssh migration tunnel");
-    my $lport = ($raddr eq "localhost") ? PVE::Tools::next_migrate_port() : undef;
+    my $pfamily = PVE::Tools::get_host_address_family($nodename);
+    my $lport = ($raddr eq "localhost") ? PVE::Tools::next_migrate_port(Family => $pfamily) : undef;
     $self->{tunnel} = $self->fork_tunnel($self->{nodeip}, $lport, $rport);
 
     my $start = time();
diff --git a/PVE/QemuServer.pm b/PVE/QemuServer.pm
index 708b208..a37dddc 100644
--- a/PVE/QemuServer.pm
+++ b/PVE/QemuServer.pm
@@ -3018,7 +3018,9 @@ sub config_to_command {
 
 	my $pciaddr = print_pci_addr("spice", $bridges);
 
-	$spice_port = PVE::Tools::next_spice_port();
+	my $nodename = PVE::INotify::nodename();
+	my $pfamily = PVE::Tools::get_host_address_family($nodename);
+	$spice_port = PVE::Tools::next_spice_port(Family => $pfamily);
 
 	push @$devices, '-spice', "tls-port=${spice_port},addr=127.0.0.1,tls-ciphers=DES-CBC3-SHA,seamless-migration=on";
 
@@ -4193,11 +4195,12 @@ sub vm_start {
 	    if ($statefile eq 'tcp') {
 		my $localip = "localhost";
 		my $datacenterconf = PVE::Cluster::cfs_read_file('datacenter.cfg');
+		my $nodename = PVE::INotify::nodename();
 		if ($datacenterconf->{migration_unsecure}) {
-			my $nodename = PVE::INotify::nodename();
 			$localip = PVE::Cluster::remote_node_ip($nodename, 1);
 		}
-		$migrate_port = PVE::Tools::next_migrate_port();
+		my $pfamily = PVE::Tools::get_host_address_family($nodename);
+		$migrate_port = PVE::Tools::next_migrate_port(Family => $pfamily);
 		$migrate_uri = "tcp:${localip}:${migrate_port}";
 		push @$cmd, '-incoming', $migrate_uri;
 		push @$cmd, '-S';
-- 
2.1.4




More information about the pve-devel mailing list