diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c index 2c97bc17474051164c0a172d9ee8a8321d6033b6..11fe721be5ad4c604b81c418029379a3592e26d4 100644 --- a/src/conf/domain_conf.c +++ b/src/conf/domain_conf.c @@ -1240,7 +1240,7 @@ void virDomainGraphicsDefFree(virDomainGraphicsDefPtr def) if (!def) return; - switch ((virDomainGraphicsType)def->type) { + switch (def->type) { case VIR_DOMAIN_GRAPHICS_TYPE_VNC: VIR_FREE(def->data.vnc.socket); VIR_FREE(def->data.vnc.keymap); @@ -10650,7 +10650,7 @@ virDomainGraphicsListenDefParseXML(virDomainGraphicsListenDefPtr def, char *address = virXMLPropString(node, "address"); char *network = virXMLPropString(node, "network"); char *fromConfig = virXMLPropString(node, "fromConfig"); - int tmp; + int tmp, typeVal; if (!type) { virReportError(VIR_ERR_XML_ERROR, "%s", @@ -10658,11 +10658,12 @@ virDomainGraphicsListenDefParseXML(virDomainGraphicsListenDefPtr def, goto error; } - if ((def->type = virDomainGraphicsListenTypeFromString(type)) < 0) { + if ((typeVal = virDomainGraphicsListenTypeFromString(type)) < 0) { virReportError(VIR_ERR_CONFIG_UNSUPPORTED, _("unknown graphics listen type '%s'"), type); goto error; } + def->type = typeVal; /* address is recognized if either type='address', or if * type='network' and we're looking at live XML (i.e. *not* @@ -11288,6 +11289,7 @@ virDomainGraphicsDefParseXML(xmlNodePtr node, { virDomainGraphicsDefPtr def; char *type = NULL; + int typeVal; if (VIR_ALLOC(def) < 0) return NULL; @@ -11299,13 +11301,14 @@ virDomainGraphicsDefParseXML(xmlNodePtr node, goto error; } - if ((def->type = virDomainGraphicsTypeFromString(type)) < 0) { + if ((typeVal = virDomainGraphicsTypeFromString(type)) < 0) { virReportError(VIR_ERR_CONFIG_UNSUPPORTED, _("unknown graphics device type '%s'"), type); goto error; } + def->type = typeVal; - switch ((virDomainGraphicsType)def->type) { + switch (def->type) { case VIR_DOMAIN_GRAPHICS_TYPE_VNC: if (virDomainGraphicsDefParseXMLVNC(def, node, ctxt, flags) < 0) goto error; @@ -21519,6 +21522,8 @@ virDomainGraphicsDefFormat(virBufferPtr buf, virDomainGraphicsAuthDefFormatAttr(buf, &def->data.spice.auth, flags); break; + case VIR_DOMAIN_GRAPHICS_TYPE_LAST: + break; } for (i = 0; i < def->nListens; i++) { diff --git a/src/conf/domain_conf.h b/src/conf/domain_conf.h index b7b099c5a9be812d0ea86d055a5c40e201439a51..b82547750991ee240c9375c11d880cab7d8d369d 100644 --- a/src/conf/domain_conf.h +++ b/src/conf/domain_conf.h @@ -1552,7 +1552,7 @@ typedef enum { typedef struct _virDomainGraphicsListenDef virDomainGraphicsListenDef; typedef virDomainGraphicsListenDef *virDomainGraphicsListenDefPtr; struct _virDomainGraphicsListenDef { - int type; /* enum virDomainGraphicsListenType */ + virDomainGraphicsListenType type; char *address; char *network; bool fromConfig; /* true if the @address is config file originated */ @@ -1564,7 +1564,7 @@ struct _virDomainGraphicsDef { * Value 0 means port wasn't specified in XML at all. * Positive value is actual port number given in XML. */ - int type; + virDomainGraphicsType type; union { struct { int port; @@ -1597,20 +1597,20 @@ struct _virDomainGraphicsDef { int tlsPort; bool portReserved; bool tlsPortReserved; - int mousemode; + virDomainGraphicsSpiceMouseMode mousemode; char *keymap; virDomainGraphicsAuthDef auth; bool autoport; int channels[VIR_DOMAIN_GRAPHICS_SPICE_CHANNEL_LAST]; - int defaultMode; /* enum virDomainGraphicsSpiceChannelMode */ + virDomainGraphicsSpiceChannelMode defaultMode; int image; int jpeg; int zlib; int playback; int streaming; - int copypaste; /* enum virTristateBool */ - int filetransfer; /* enum virTristateBool */ - int gl; /* enum virTristateBool */ + virTristateBool copypaste; + virTristateBool filetransfer; + virTristateBool gl; } spice; } data; /* nListens, listens, and *port are only useful if type is vnc, diff --git a/src/libxl/libxl_conf.c b/src/libxl/libxl_conf.c index 30f2ce99de08d23fcda7b54b309ef893316c11bc..d927b374e61a3d34e82f0f98dada240655fc8ac8 100644 --- a/src/libxl/libxl_conf.c +++ b/src/libxl/libxl_conf.c @@ -1463,6 +1463,12 @@ libxlMakeVfb(virPortAllocatorPtr graphicsports, if (VIR_STRDUP(x_vfb->keymap, l_vfb->data.vnc.keymap) < 0) return -1; break; + + case VIR_DOMAIN_GRAPHICS_TYPE_RDP: + case VIR_DOMAIN_GRAPHICS_TYPE_DESKTOP: + case VIR_DOMAIN_GRAPHICS_TYPE_SPICE: + case VIR_DOMAIN_GRAPHICS_TYPE_LAST: + break; } return 0; @@ -1579,6 +1585,8 @@ libxlMakeBuildInfoVfb(virPortAllocatorPtr graphicsports, case VIR_DOMAIN_GRAPHICS_SPICE_MOUSE_MODE_SERVER: libxl_defbool_set(&b_info->u.hvm.spice.agent_mouse, false); break; + case VIR_DOMAIN_GRAPHICS_SPICE_MOUSE_MODE_LAST: + break; } #ifdef LIBXL_HAVE_SPICE_VDAGENT diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c index 93aaf2ad5a48baad33231bfbe309e99df78f8c80..2966b07a1c1c054292503dcfb37502152c316b87 100644 --- a/src/qemu/qemu_command.c +++ b/src/qemu/qemu_command.c @@ -7445,6 +7445,10 @@ qemuBuildGraphicsVNCCommandLine(virQEMUDriverConfigPtr cfg, if (VIR_STRDUP(gListen->address, netAddr) < 0) goto error; break; + + case VIR_DOMAIN_GRAPHICS_LISTEN_TYPE_NONE: + case VIR_DOMAIN_GRAPHICS_LISTEN_TYPE_LAST: + break; } } @@ -7602,6 +7606,10 @@ qemuBuildGraphicsSPICECommandLine(virQEMUDriverConfigPtr cfg, if (VIR_STRDUP(gListen->address, listenAddr) < 0) goto error; break; + + case VIR_DOMAIN_GRAPHICS_LISTEN_TYPE_NONE: + case VIR_DOMAIN_GRAPHICS_LISTEN_TYPE_LAST: + break; } } @@ -7727,7 +7735,7 @@ qemuBuildGraphicsSPICECommandLine(virQEMUDriverConfigPtr cfg, } } - if (graphics->data.spice.gl == VIR_TRISTATE_SWITCH_ON) { + if (graphics->data.spice.gl == VIR_TRISTATE_BOOL_YES) { if (!virQEMUCapsGet(qemuCaps, QEMU_CAPS_SPICE_GL)) { virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s", _("This QEMU doesn't support spice OpenGL")); @@ -7782,7 +7790,7 @@ qemuBuildGraphicsCommandLine(virQEMUDriverConfigPtr cfg, virDomainGraphicsDefPtr graphics, const char *domainLibDir) { - switch ((virDomainGraphicsType) graphics->type) { + switch (graphics->type) { case VIR_DOMAIN_GRAPHICS_TYPE_SDL: if (!virQEMUCapsGet(qemuCaps, QEMU_CAPS_SDL)) { virReportError(VIR_ERR_CONFIG_UNSUPPORTED, @@ -9320,6 +9328,10 @@ qemuBuildCommandLineValidate(virQEMUDriverPtr driver, case VIR_DOMAIN_GRAPHICS_TYPE_SPICE: ++spice; break; + case VIR_DOMAIN_GRAPHICS_TYPE_RDP: + case VIR_DOMAIN_GRAPHICS_TYPE_DESKTOP: + case VIR_DOMAIN_GRAPHICS_TYPE_LAST: + break; } } diff --git a/src/qemu/qemu_hotplug.c b/src/qemu/qemu_hotplug.c index 73e2a67f94e418f4c7726beec6e90286c48332e6..1f64d0cd7c8fab32f28f49e595990cd0e1656d52 100644 --- a/src/qemu/qemu_hotplug.c +++ b/src/qemu/qemu_hotplug.c @@ -2633,7 +2633,7 @@ qemuDomainChangeGraphics(virQEMUDriverPtr driver, goto cleanup; } - switch ((virDomainGraphicsListenType) newlisten->type) { + switch (newlisten->type) { case VIR_DOMAIN_GRAPHICS_LISTEN_TYPE_ADDRESS: if (STRNEQ_NULLABLE(newlisten->address, oldlisten->address)) { virReportError(VIR_ERR_OPERATION_UNSUPPORTED, "%s", diff --git a/src/xenconfig/xen_sxpr.c b/src/xenconfig/xen_sxpr.c index dc47b4d2f1e9e942d346a2a059c273505c5795be..d4aa5e99f08c8e038380defab0dcb23a6df62891 100644 --- a/src/xenconfig/xen_sxpr.c +++ b/src/xenconfig/xen_sxpr.c @@ -929,6 +929,7 @@ xenParseSxprGraphicsNew(virDomainDefPtr def, virDomainGraphicsDefPtr graphics = NULL; const struct sexpr *cur, *node; const char *tmp; + int typeVal; /* append network devices and framebuffer */ for (cur = root; cur->kind == SEXPR_CONS; cur = cur->u.s.cdr) { @@ -949,11 +950,12 @@ xenParseSxprGraphicsNew(virDomainDefPtr def, if (VIR_ALLOC(graphics) < 0) goto error; - if ((graphics->type = virDomainGraphicsTypeFromString(tmp)) < 0) { + if ((typeVal = virDomainGraphicsTypeFromString(tmp)) < 0) { virReportError(VIR_ERR_INTERNAL_ERROR, _("unknown graphics type '%s'"), tmp); goto error; } + graphics->type = typeVal; if (graphics->type == VIR_DOMAIN_GRAPHICS_TYPE_SDL) { const char *display = sexpr_node(node, "device/vfb/display");