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;
}
{
qemuDomainObjPrivatePtr priv = vm->privateData;
int ret;
+ char *listenAddress = cookie->graphics->listen;
if (!cookie)
return 0;
if (cookie->graphics->type != VIR_DOMAIN_GRAPHICS_TYPE_SPICE)
return 0;
+ if (!listenAddress ||
+ STREQ(listenAddress, "0.0.0.0") ||
+ STREQ(listenAddress, "::"))
+ listenAddress = cookie->remoteHostname;
+
ret = qemuDomainObjEnterMonitorAsync(driver, vm,
QEMU_ASYNC_JOB_MIGRATION_OUT);
if (ret == 0) {
ret = qemuMonitorGraphicsRelocate(priv->mon,
cookie->graphics->type,
- cookie->remoteHostname,
+ listenAddress,
cookie->graphics->port,
cookie->graphics->tlsPort,
cookie->graphics->tlsSubject);