[pve-devel] [PATCH] migration: put the source address in brackets

Wolfgang Bumiller w.bumiller at proxmox.com
Thu May 21 15:19:35 CEST 2015


Always adding brackets around the address works. They're required for
ipv6 and qemu also accepts them for ipv4 and hostnames.
---
 PVE/QemuMigrate.pm | 6 +++---
 PVE/QemuServer.pm  | 2 +-
 2 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/PVE/QemuMigrate.pm b/PVE/QemuMigrate.pm
index 5eb488f..264a2a7 100644
--- a/PVE/QemuMigrate.pm
+++ b/PVE/QemuMigrate.pm
@@ -334,7 +334,7 @@ sub phase2 {
     PVE::Tools::run_command($cmd, input => $spice_ticket, outfunc => sub {
 	my $line = shift;
 
-	if ($line =~ m/^migration listens on tcp:([\d\.]+|localhost):(\d+)$/) {
+	if ($line =~ m/^migration listens on tcp:\[([\d\.:a-fA-F]+|localhost)\]:(\d+)$/) {
 	    $raddr = $1;
 	    $rport = int($2);
 	}
@@ -418,10 +418,10 @@ sub phase2 {
     }
 
     eval {
-        PVE::QemuServer::vm_mon_cmd_nocheck($vmid, "migrate", uri => "tcp:$raddr:$rport");
+        PVE::QemuServer::vm_mon_cmd_nocheck($vmid, "migrate", uri => "tcp:[$raddr]:$rport");
     };
     my $merr = $@;
-    $self->log('info', "migrate uri => tcp:$raddr:$rport failed: $merr") if $merr;
+    $self->log('info', "migrate uri => tcp:[$raddr]:$rport failed: $merr") if $merr;
 
     my $lstat = 0;
     my $usleep = 2000000;
diff --git a/PVE/QemuServer.pm b/PVE/QemuServer.pm
index 3ac0eae..19fcf49 100644
--- a/PVE/QemuServer.pm
+++ b/PVE/QemuServer.pm
@@ -4202,7 +4202,7 @@ sub vm_start {
 		}
 		my $pfamily = PVE::Tools::get_host_address_family($nodename);
 		$migrate_port = PVE::Tools::next_migrate_port($pfamily);
-		$migrate_uri = "tcp:${localip}:${migrate_port}";
+		$migrate_uri = "tcp:[${localip}]:${migrate_port}";
 		push @$cmd, '-incoming', $migrate_uri;
 		push @$cmd, '-S';
 	    } else {
-- 
2.1.4





More information about the pve-devel mailing list