migration: put the source address in brackets

Always adding brackets around the address works. They're required for
ipv6 and qemu also accepts them for ipv4 and hostnames.
This commit is contained in:
Wolfgang Bumiller 2015-05-21 15:19:35 +02:00 committed by Dietmar Maurer
parent af0eba7e35
commit 2fbd27eabc
2 changed files with 4 additions and 4 deletions

View File

@ -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;

View File

@ -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 {