From: Peter Krempa <pkrempa(a)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 <pkrempa(a)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