From: Peter Krempa <pkrempa(a)redhat.com>
Move the rest of the RDP graphics validation code to
qemuValidateDomainDeviceDefRDPGraphics together with the rest of the
validation.
Signed-off-by: Peter Krempa <pkrempa(a)redhat.com>
---
src/qemu/qemu_process.c | 54 ----------------------------------------
src/qemu/qemu_validate.c | 20 +++++++++++++--
2 files changed, 18 insertions(+), 56 deletions(-)
diff --git a/src/qemu/qemu_process.c b/src/qemu/qemu_process.c
index 920adef7df..82cab3f76e 100644
--- a/src/qemu/qemu_process.c
+++ b/src/qemu/qemu_process.c
@@ -5509,57 +5509,6 @@ qemuProcessMakeDir(virQEMUDriver *driver,
}
-static bool
-virDomainDefHasDBus(const virDomainDef *def, bool p2p)
-{
- size_t i = 0;
-
- for (i = 0; i < def->ngraphics; i++) {
- virDomainGraphicsDef *graphics = def->graphics[i];
-
- if (graphics->type == VIR_DOMAIN_GRAPHICS_TYPE_DBUS) {
- return graphics->data.dbus.p2p == p2p;
- }
- }
-
- return false;
-}
-
-
-static int
-qemuProcessStartValidateGraphics(virDomainObj *vm)
-{
- size_t i;
-
- for (i = 0; i < vm->def->ngraphics; i++) {
- virDomainGraphicsDef *graphics = vm->def->graphics[i];
-
- switch (graphics->type) {
- case VIR_DOMAIN_GRAPHICS_TYPE_VNC:
- case VIR_DOMAIN_GRAPHICS_TYPE_SPICE:
- break;
-
- case VIR_DOMAIN_GRAPHICS_TYPE_RDP:
- if (!virDomainDefHasDBus(vm->def, false)) {
- virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s",
- _("qemu-rdp support requires a D-Bus bus graphics
device."));
- return -1;
- }
- break;
-
- case VIR_DOMAIN_GRAPHICS_TYPE_SDL:
- case VIR_DOMAIN_GRAPHICS_TYPE_DESKTOP:
- case VIR_DOMAIN_GRAPHICS_TYPE_EGL_HEADLESS:
- case VIR_DOMAIN_GRAPHICS_TYPE_DBUS:
- case VIR_DOMAIN_GRAPHICS_TYPE_LAST:
- break;
- }
- }
-
- return 0;
-}
-
-
/* 250 parts per million (ppm) is a half of NTP threshold */
#define TSC_TOLERANCE 250
@@ -5664,9 +5613,6 @@ qemuProcessStartValidate(virQEMUDriver *driver,
if (virDomainDefValidate(vm->def, 0, driver->xmlopt, qemuCaps) < 0)
return -1;
- if (qemuProcessStartValidateGraphics(vm) < 0)
- return -1;
-
if (vm->def->cpu) {
if (virCPUValidateFeatures(vm->def->os.arch, vm->def->cpu) < 0)
return -1;
diff --git a/src/qemu/qemu_validate.c b/src/qemu/qemu_validate.c
index 1aa54bf59f..de391ce34d 100644
--- a/src/qemu/qemu_validate.c
+++ b/src/qemu/qemu_validate.c
@@ -4522,8 +4522,11 @@ qemuValidateDomainDeviceDefDBusGraphics(const virDomainGraphicsDef
*graphics,
static int
-qemuValidateDomainDeviceDefRDPGraphics(const virDomainGraphicsDef *graphics)
+qemuValidateDomainDeviceDefRDPGraphics(const virDomainGraphicsDef *graphics,
+ const virDomainDef *def)
{
+ size_t i;
+
if (graphics->nListens > 1) {
virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s",
_("qemu-rdp does not support multiple listens for one
graphics device."));
@@ -4546,6 +4549,19 @@ qemuValidateDomainDeviceDefRDPGraphics(const virDomainGraphicsDef
*graphics)
return -1;
}
+ for (i = 0; i < def->ngraphics; i++) {
+ virDomainGraphicsDef *g = def->graphics[i];
+
+ if (g->type == VIR_DOMAIN_GRAPHICS_TYPE_DBUS && g->data.dbus.p2p ==
false)
+ break;
+ }
+
+ if (i == def->ngraphics) {
+ virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s",
+ _("qemu-rdp support requires a D-Bus bus graphics
device."));
+ return -1;
+ }
+
return 0;
}
@@ -4623,7 +4639,7 @@ qemuValidateDomainDeviceDefGraphics(const virDomainGraphicsDef
*graphics,
break;
case VIR_DOMAIN_GRAPHICS_TYPE_RDP:
- if (qemuValidateDomainDeviceDefRDPGraphics(graphics) < 0)
+ if (qemuValidateDomainDeviceDefRDPGraphics(graphics, def) < 0)
return -1;
break;
--
2.49.0