From: Peter Krempa <pkre...@redhat.com>

Move the checks from 'qemuProcessStartValidateGraphics' to the
correspodning graphics validation functions in qemu_validate.c:

 - qemuValidateDomainDeviceDefSPICEGraphics
 - qemuValidateDomainDeviceDefVNCGraphics
 - qemuValidateDomainDeviceDefRDPGraphics

Signed-off-by: Peter Krempa <pkre...@redhat.com>
---
 src/qemu/qemu_process.c  | 10 ----------
 src/qemu/qemu_validate.c | 18 ++++++++++++++++++
 2 files changed, 18 insertions(+), 10 deletions(-)

diff --git a/src/qemu/qemu_process.c b/src/qemu/qemu_process.c
index 9fbb03ee8b..b99602c5ed 100644
--- a/src/qemu/qemu_process.c
+++ b/src/qemu/qemu_process.c
@@ -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."));
diff --git a/src/qemu/qemu_validate.c b/src/qemu/qemu_validate.c
index 0e7dd3fc58..1aa54bf59f 100644
--- a/src/qemu/qemu_validate.c
+++ b/src/qemu/qemu_validate.c
@@ -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'"));
-- 
2.49.0

Reply via email to