From: Daniel P. Berrange Date: Mon, 25 Jun 2012 11:50:52 +0000 (+0100) Subject: Include the default listen address in the live guest XML X-Git-Tag: v0.9.13-rc2~15 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=d7f9d827531bc843b7c5aa9d3e8c08738a1de248;p=thirdparty%2Flibvirt.git Include the default listen address in the live guest XML If no 'listen' attribute or element is set in the guest XML, the default driver configured listen address is used. There is no way to client applications to determine what this address is though. When starting the guest, we should update the live XML to include this default listen address --- diff --git a/src/qemu/qemu_process.c b/src/qemu/qemu_process.c index 1df363757e..c5140c3c92 100644 --- a/src/qemu/qemu_process.c +++ b/src/qemu/qemu_process.c @@ -3429,6 +3429,27 @@ int qemuProcessStart(virConnectPtr conn, vm->def->graphics[0]->data.spice.tlsPort = tlsPort; } } + + if (vm->def->graphics[0]->type == VIR_DOMAIN_GRAPHICS_TYPE_VNC || + vm->def->graphics[0]->type == VIR_DOMAIN_GRAPHICS_TYPE_SPICE) { + virDomainGraphicsDefPtr graphics = vm->def->graphics[0]; + if (graphics->nListens == 0) { + if (VIR_EXPAND_N(graphics->listens, graphics->nListens, 1) < 0) { + virReportOOMError(); + goto cleanup; + } + graphics->listens[0].type = VIR_DOMAIN_GRAPHICS_LISTEN_TYPE_ADDRESS; + if (vm->def->graphics[0]->type == VIR_DOMAIN_GRAPHICS_TYPE_VNC) + graphics->listens[0].address = strdup(driver->vncListen); + else + graphics->listens[0].address = strdup(driver->spiceListen); + if (!graphics->listens[0].address) { + VIR_SHRINK_N(graphics->listens, graphics->nListens, 1); + virReportOOMError(); + goto cleanup; + } + } + } } if (virFileMakePath(driver->logDir) < 0) {