]> git.ipfire.org Git - thirdparty/libvirt.git/commitdiff
qemu: cleanup code to release VNC websocket port
authorNikolay Shirokovskiy <nshirokovskiy@openvz.org>
Mon, 11 Apr 2022 13:43:58 +0000 (16:43 +0300)
committerNikolay Shirokovskiy <nshirokovskiy@openvz.org>
Wed, 13 Apr 2022 14:45:49 +0000 (17:45 +0300)
VNC websocket port cleanup looks a bit repetetive. Let's set websocketReserved
flag whenever we reserve port (auto or not).

Also websocketReserved flag is not cleared on stop in case of reconnect with
auto port (flags is set on reconnect in qemuProcessGraphicsReservePorts
call). Yeah config is freed in the end of stopping domain but still.

Signed-off-by: Nikolay Shirokovskiy <nshirokovskiy@openvz.org>
Reviewed-by: Martin Kletzander <mkletzan@redhat.com>
src/qemu/qemu_process.c

index 9c7583a10bbc7cfe48354ee945df36d35b38de35..6db8bbc42182e89f5f4eae6c3ec94fd71efe3f75 100644 (file)
@@ -4002,6 +4002,7 @@ qemuProcessVNCAllocatePorts(virQEMUDriver *driver,
             return -1;
         graphics->data.vnc.websocket = port;
         graphics->data.vnc.websocketGenerated = true;
+        graphics->data.vnc.websocketReserved = true;
     }
 
     return 0;
@@ -8268,12 +8269,13 @@ void qemuProcessStop(virQEMUDriver *driver,
                 virPortAllocatorRelease(graphics->data.vnc.port);
                 graphics->data.vnc.portReserved = false;
             }
-            if (graphics->data.vnc.websocketGenerated) {
+            if (graphics->data.vnc.websocketReserved) {
                 virPortAllocatorRelease(graphics->data.vnc.websocket);
+                graphics->data.vnc.websocketReserved = false;
+            }
+            if (graphics->data.vnc.websocketGenerated) {
                 graphics->data.vnc.websocketGenerated = false;
                 graphics->data.vnc.websocket = -1;
-            } else if (graphics->data.vnc.websocketReserved) {
-                virPortAllocatorRelease(graphics->data.vnc.websocket);
             }
         }
         if (graphics->type == VIR_DOMAIN_GRAPHICS_TYPE_SPICE) {