]> xenbits.xensource.com Git - libvirt.git/commitdiff
qemu_process: separate graphics port reservation
authorPavel Hrdina <phrdina@redhat.com>
Mon, 9 May 2016 12:20:08 +0000 (14:20 +0200)
committerPavel Hrdina <phrdina@redhat.com>
Tue, 10 May 2016 08:44:45 +0000 (10:44 +0200)
Signed-off-by: Pavel Hrdina <phrdina@redhat.com>
src/qemu/qemu_process.c

index 22b27b35a5eaf0342a9052687d7cc8696fd64203..f110a66ad3753222e4253f550637775b0395102b 100644 (file)
@@ -4348,12 +4348,10 @@ qemuProcessStartHook(virQEMUDriverPtr driver,
 
 
 static int
-qemuProcessSetupGraphics(virQEMUDriverPtr driver,
-                         virDomainObjPtr vm)
+qemuProcessGraphicsReservePorts(virQEMUDriverPtr driver,
+                                virDomainObjPtr vm)
 {
-    virQEMUDriverConfigPtr cfg = virQEMUDriverGetConfig(driver);
     size_t i;
-    int ret = -1;
 
     for (i = 0; i < vm->def->ngraphics; ++i) {
         virDomainGraphicsDefPtr graphics = vm->def->graphics[i];
@@ -4362,7 +4360,7 @@ qemuProcessSetupGraphics(virQEMUDriverPtr driver,
             if (virPortAllocatorSetUsed(driver->remotePorts,
                                         graphics->data.vnc.port,
                                         true) < 0)
-                goto cleanup;
+                return -1;
             graphics->data.vnc.portReserved = true;
 
         } else if (graphics->type == VIR_DOMAIN_GRAPHICS_TYPE_SPICE &&
@@ -4371,7 +4369,7 @@ qemuProcessSetupGraphics(virQEMUDriverPtr driver,
                 if (virPortAllocatorSetUsed(driver->remotePorts,
                                             graphics->data.spice.port,
                                             true) < 0)
-                    goto cleanup;
+                    return -1;
                 graphics->data.spice.portReserved = true;
             }
 
@@ -4379,12 +4377,27 @@ qemuProcessSetupGraphics(virQEMUDriverPtr driver,
                 if (virPortAllocatorSetUsed(driver->remotePorts,
                                             graphics->data.spice.tlsPort,
                                             true) < 0)
-                    goto cleanup;
+                    return -1;
                 graphics->data.spice.tlsPortReserved = true;
             }
         }
     }
 
+    return 0;
+}
+
+
+static int
+qemuProcessSetupGraphics(virQEMUDriverPtr driver,
+                         virDomainObjPtr vm)
+{
+    virQEMUDriverConfigPtr cfg = virQEMUDriverGetConfig(driver);
+    size_t i;
+    int ret = -1;
+
+    if (qemuProcessGraphicsReservePorts(driver, vm) < 0)
+        goto cleanup;
+
     for (i = 0; i < vm->def->ngraphics; ++i) {
         virDomainGraphicsDefPtr graphics = vm->def->graphics[i];