On Wed, Apr 10, 2013 at 07:04:12PM +0200, Michal Privoznik wrote: > https://bugzilla.redhat.com/show_bug.cgi?id=920441 > > Currently, we are discarding listen attribute from qemu cookie even though > we strive to gather it. This result in not so cool bug: if user have > different networks, one for management/migration, and one for VNC/SPICE we > pass incorrect host to the qemu in client_migrate_info. What we actually > pass is remote hostname, while we should be passing remote listen address. > It doesn't matter as long as these two are the same, but they don't need > necessary to be like that. > --- > src/conf/domain_conf.c | 4 +++- > src/qemu/qemu_migration.c | 6 +++++- > 2 files changed, 8 insertions(+), 2 deletions(-) > > diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c > index e00a532..2afa982 100644 > --- a/src/conf/domain_conf.c > +++ b/src/conf/domain_conf.c > @@ -16557,8 +16557,10 @@ virDomainGraphicsListenGetAddress(virDomainGraphicsDefPtr def, size_t ii) > virDomainGraphicsListenDefPtr listenInfo > = virDomainGraphicsGetListen(def, ii, false); > > + /* even a network can have a listen address */ > if (!listenInfo || > - (listenInfo->type != VIR_DOMAIN_GRAPHICS_LISTEN_TYPE_ADDRESS)) > + !(listenInfo->type == VIR_DOMAIN_GRAPHICS_LISTEN_TYPE_ADDRESS || > + listenInfo->type == VIR_DOMAIN_GRAPHICS_LISTEN_TYPE_NETWORK)) > return NULL; > return listenInfo->address; > } > diff --git a/src/qemu/qemu_migration.c b/src/qemu/qemu_migration.c > index 41ad768..434b19a 100644 > --- a/src/qemu/qemu_migration.c > +++ b/src/qemu/qemu_migration.c > @@ -1720,6 +1720,7 @@ qemuDomainMigrateGraphicsRelocate(virQEMUDriverPtr driver, > { > qemuDomainObjPrivatePtr priv = vm->privateData; > int ret; > + char *listenAddress = cookie->graphics->listen; > > if (!cookie) > return 0; > @@ -1733,12 +1734,15 @@ qemuDomainMigrateGraphicsRelocate(virQEMUDriverPtr driver, > if (cookie->graphics->type != VIR_DOMAIN_GRAPHICS_TYPE_SPICE) > return 0; > > + if (STREQ(listenAddress, "0.0.0.0")) > + listenAddress = cookie->remoteHostname; Oh, also IPv6 '::'. And listenAddress can be NULL too, so need to check for that. Daniel -- |: http://berrange.com -o- http://www.flickr.com/photos/dberrange/ :| |: http://libvirt.org -o- http://virt-manager.org :| |: http://autobuild.org -o- http://search.cpan.org/~danberr/ :| |: http://entangle-photo.org -o- http://live.gnome.org/gtk-vnc :| -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list