Signed-off-by: Pavel Hrdina <phrdina(a)redhat.com>
---
src/qemu/qemu_process.c | 45 ++++++++++++++-------------------------------
1 file changed, 14 insertions(+), 31 deletions(-)
diff --git a/src/qemu/qemu_process.c b/src/qemu/qemu_process.c
index 3d46695..eddf3a7 100644
--- a/src/qemu/qemu_process.c
+++ b/src/qemu/qemu_process.c
@@ -4402,16 +4402,21 @@ qemuProcessSetupGraphics(virQEMUDriverPtr driver,
for (i = 0; i < vm->def->ngraphics; ++i) {
virDomainGraphicsDefPtr graphics = vm->def->graphics[i];
+ char *listenAddr = NULL;
switch (graphics->type) {
case VIR_DOMAIN_GRAPHICS_TYPE_VNC:
if (qemuProcessVNCAllocatePorts(driver, graphics, allocate) < 0)
goto cleanup;
+
+ listenAddr = cfg->vncListen;
break;
case VIR_DOMAIN_GRAPHICS_TYPE_SPICE:
if (qemuProcessSPICEAllocatePorts(driver, cfg, graphics, allocate) < 0)
goto cleanup;
+
+ listenAddr = cfg->spiceListen;
break;
case VIR_DOMAIN_GRAPHICS_TYPE_SDL:
@@ -4420,6 +4425,14 @@ qemuProcessSetupGraphics(virQEMUDriverPtr driver,
case VIR_DOMAIN_GRAPHICS_TYPE_LAST:
break;
}
+
+ if (graphics->nListens == 0 && listenAddr) {
+ if (virDomainGraphicsListenAppendAddress(graphics,
+ listenAddr) < 0)
+ goto cleanup;
+
+ graphics->listens[0].fromConfig = true;
+ }
}
ret = 0;
@@ -5177,40 +5190,10 @@ qemuProcessPrepareDomain(virConnectPtr conn,
if (qemuAssignDeviceAliases(vm->def, priv->qemuCaps) < 0)
goto cleanup;
- VIR_DEBUG("Setting up ports for graphics");
+ VIR_DEBUG("Setting graphics devices");
if (qemuProcessSetupGraphics(driver, vm, flags) < 0)
goto cleanup;
- /* Fill in run-time values for graphics devices. */
- for (i = 0; i < vm->def->ngraphics; i++) {
- virDomainGraphicsDefPtr graphics = vm->def->graphics[i];
- char *listenAddr = NULL;
-
- switch (graphics->type) {
- case VIR_DOMAIN_GRAPHICS_TYPE_VNC:
- listenAddr = cfg->vncListen;
- break;
-
- case VIR_DOMAIN_GRAPHICS_TYPE_SPICE:
- listenAddr = cfg->spiceListen;
- break;
-
- case VIR_DOMAIN_GRAPHICS_TYPE_SDL:
- case VIR_DOMAIN_GRAPHICS_TYPE_RDP:
- case VIR_DOMAIN_GRAPHICS_TYPE_DESKTOP:
- case VIR_DOMAIN_GRAPHICS_TYPE_LAST:
- break;
- }
-
- if (graphics->nListens == 0 && listenAddr) {
- if (virDomainGraphicsListenAppendAddress(graphics,
- listenAddr) < 0)
- goto cleanup;
-
- graphics->listens[0].fromConfig = true;
- }
- }
-
/* "volume" type disk's source must be translated before
* cgroup and security setting.
*/
--
2.8.2