]> git.ipfire.org Git - thirdparty/libvirt.git/commitdiff
qemu: Move checks for number of listening sockets of graphics to validation code
authorPeter Krempa <pkrempa@redhat.com>
Mon, 26 May 2025 08:37:52 +0000 (10:37 +0200)
committerPeter Krempa <pkrempa@redhat.com>
Tue, 3 Jun 2025 11:11:02 +0000 (13:11 +0200)
Move the checks from 'qemuProcessStartValidateGraphics' to the
correspodning graphics validation functions in qemu_validate.c:

 - qemuValidateDomainDeviceDefSPICEGraphics
 - qemuValidateDomainDeviceDefVNCGraphics
 - qemuValidateDomainDeviceDefRDPGraphics

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Pavel Hrdina <phrdina@redhat.com>
src/qemu/qemu_process.c
src/qemu/qemu_validate.c

index 9fbb03ee8b8efbec44f6a5c96dd855b9da93601f..b99602c5edbbf82157df792d8b67c533239d3748 100644 (file)
@@ -5537,19 +5537,9 @@ qemuProcessStartValidateGraphics(virDomainObj *vm)
         switch (graphics->type) {
         case VIR_DOMAIN_GRAPHICS_TYPE_VNC:
         case VIR_DOMAIN_GRAPHICS_TYPE_SPICE:
-            if (graphics->nListens > 1) {
-                virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s",
-                               _("QEMU does not support multiple listens for one graphics device."));
-                return -1;
-            }
             break;
 
         case VIR_DOMAIN_GRAPHICS_TYPE_RDP:
-            if (graphics->nListens > 1) {
-                virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s",
-                               _("qemu-rdp does not support multiple listens for one graphics device."));
-                return -1;
-            }
             if (graphics->data.rdp.multiUser) {
                 virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s",
                                _("qemu-rdp doesn't support the 'multiUser' attribute."));
index 0e7dd3fc58b5ab28efb8b0617b0961a50139ab28..1aa54bf59fe9b4d0e760362cf3ae929ba2a133cf 100644 (file)
@@ -4425,6 +4425,12 @@ qemuValidateDomainDeviceDefSPICEGraphics(const virDomainGraphicsDef *graphics,
     virDomainGraphicsListenDef *glisten = NULL;
     int tlsPort = graphics->data.spice.tlsPort;
 
+    if (graphics->nListens > 1) {
+        virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s",
+                       _("QEMU does not support multiple listens for one graphics device."));
+        return -1;
+    }
+
     glisten = virDomainGraphicsGetListen((virDomainGraphicsDef *)graphics, 0);
     if (!glisten) {
         virReportError(VIR_ERR_INTERNAL_ERROR, "%s",
@@ -4472,6 +4478,12 @@ static int
 qemuValidateDomainDeviceDefVNCGraphics(const virDomainGraphicsDef *graphics,
                                        virQEMUCaps *qemuCaps)
 {
+    if (graphics->nListens > 1) {
+        virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s",
+                       _("QEMU does not support multiple listens for one graphics device."));
+        return -1;
+    }
+
     if (graphics->data.vnc.powerControl != VIR_TRISTATE_BOOL_ABSENT &&
         !virQEMUCapsGet(qemuCaps, QEMU_CAPS_VNC_POWER_CONTROL)) {
         virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s",
@@ -4512,6 +4524,12 @@ qemuValidateDomainDeviceDefDBusGraphics(const virDomainGraphicsDef *graphics,
 static int
 qemuValidateDomainDeviceDefRDPGraphics(const virDomainGraphicsDef *graphics)
 {
+    if (graphics->nListens > 1) {
+        virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s",
+                       _("qemu-rdp does not support multiple listens for one graphics device."));
+        return -1;
+    }
+
     if (graphics->data.rdp.replaceUser) {
         virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s",
                        _("RDP doesn't support 'replaceUser'"));