Signed-off-by: Shi Lei <shi_lei@xxxxxxxxxxxxxx> --- src/conf/domain_conf.c | 109 ++++--------------------------- src/conf/domain_conf.h | 18 ++--- src/qemu/qemu_command.c | 2 + src/qemu/qemu_hotplug.c | 1 + src/qemu/qemu_migration_cookie.c | 1 + src/qemu/qemu_process.c | 1 + src/qemu/qemu_validate.c | 1 + 7 files changed, 27 insertions(+), 106 deletions(-) diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c index d1602ab..507679b 100644 --- a/src/conf/domain_conf.c +++ b/src/conf/domain_conf.c @@ -853,6 +853,7 @@ VIR_ENUM_IMPL(virDomainGraphics, VIR_ENUM_IMPL(virDomainGraphicsListen, VIR_DOMAIN_GRAPHICS_LISTEN_TYPE_LAST, + "dummy", "none", "address", "network", @@ -1789,19 +1790,6 @@ bool virDomainObjTaint(virDomainObjPtr obj, } -static void -virDomainGraphicsListenDefClear(virDomainGraphicsListenDefPtr def) -{ - if (!def) - return; - - VIR_FREE(def->address); - VIR_FREE(def->network); - VIR_FREE(def->socket); - return; -} - - void virDomainGraphicsDefFree(virDomainGraphicsDefPtr def) { size_t i; @@ -14119,7 +14107,7 @@ virDomainTimerDefParseXML(xmlNodePtr node, } -static int +int virDomainGraphicsListenDefParseXMLHook(xmlNodePtr node G_GNUC_UNUSED, virDomainGraphicsListenDefPtr def, const char *instname G_GNUC_UNUSED, @@ -14154,6 +14142,7 @@ virDomainGraphicsListenDefParseXMLHook(xmlNodePtr node G_GNUC_UNUSED, break; case VIR_DOMAIN_GRAPHICS_LISTEN_TYPE_ADDRESS: case VIR_DOMAIN_GRAPHICS_LISTEN_TYPE_NETWORK: + case VIR_DOMAIN_GRAPHICS_LISTEN_TYPE_DUMMY: case VIR_DOMAIN_GRAPHICS_LISTEN_TYPE_LAST: break; } @@ -14196,87 +14185,6 @@ virDomainGraphicsListenDefParseXMLHook(xmlNodePtr node G_GNUC_UNUSED, } -/** - * virDomainGraphicsListenDefParseXML: - * @def: listen def pointer to be filled - * @graphics: graphics def pointer - * @node: xml node of <listen/> element - * @flags: bit-wise or of VIR_DOMAIN_DEF_PARSE_* - * - * Parses current <listen/> element from @node to @def. For backward - * compatibility the @parent element should contain node of <graphics/> element - * for the first <listen/> element in order to validate attributes from both - * elements. - */ -static int -virDomainGraphicsListenDefParseXML(virDomainGraphicsListenDefPtr def, - virDomainGraphicsDefPtr graphics, - xmlNodePtr node, - unsigned int flags) -{ - int ret = -1; - int tmp, typeVal; - g_autofree char *type = virXMLPropString(node, "type"); - g_autofree char *address = virXMLPropString(node, "address"); - g_autofree char *network = virXMLPropString(node, "network"); - g_autofree char *socketPath = virXMLPropString(node, "socket"); - g_autofree char *fromConfig = virXMLPropString(node, "fromConfig"); - g_autofree char *autoGenerated = virXMLPropString(node, "autoGenerated"); - - if (!type) { - virReportError(VIR_ERR_XML_ERROR, "%s", - _("graphics listen type must be specified")); - goto error; - } - - if ((typeVal = virDomainGraphicsListenTypeFromString(type)) < 0) { - virReportError(VIR_ERR_CONFIG_UNSUPPORTED, - _("unknown graphics listen type '%s'"), type); - goto error; - } - def->type = typeVal; - - if (address && address[0]) - def->address = g_steal_pointer(&address); - - if (network && network[0]) - def->network = g_steal_pointer(&network); - - if (socketPath && socketPath[0]) - def->socket = g_steal_pointer(&socketPath); - - if (fromConfig) { - if (virStrToLong_i(fromConfig, NULL, 10, &tmp) < 0) { - virReportError(VIR_ERR_XML_ERROR, - _("Invalid fromConfig value: %s"), - fromConfig); - goto error; - } - def->fromConfig = tmp != 0; - } - - if (autoGenerated) { - if (virStringParseYesNo(autoGenerated, &def->autoGenerated) < 0) { - virReportError(VIR_ERR_XML_ERROR, - _("Invalid autoGenerated value: %s"), - autoGenerated); - goto error; - } - } - - if (virDomainGraphicsListenDefParseXMLHook(node, def, NULL, - graphics, &flags, type, - fromConfig, autoGenerated) < 0) - goto error; - - ret = 0; - error: - if (ret < 0) - virDomainGraphicsListenDefClear(def); - return ret; -} - - static int virDomainGraphicsListensParseXML(virDomainGraphicsDefPtr def, xmlNodePtr node, @@ -14305,9 +14213,9 @@ virDomainGraphicsListensParseXML(virDomainGraphicsDefPtr def, for (i = 0; i < nListens; i++) { virDomainGraphicsListenDefPtr listen = &def->listens[i]; - if (virDomainGraphicsListenDefParseXML(listen, def, - listenNodes[i], - flags) < 0) + if (virDomainGraphicsListenDefParseXML(listenNodes[i], + listen, NULL, + def, &flags) < 0) goto cleanup; if (i == 0) { @@ -27827,6 +27735,7 @@ virDomainGraphicsVNCDefCheckAttrHook(const virDomainGraphicsVNCDef *def G_GNUC_U ret = true; break; case VIR_DOMAIN_GRAPHICS_LISTEN_TYPE_NONE: + case VIR_DOMAIN_GRAPHICS_LISTEN_TYPE_DUMMY: case VIR_DOMAIN_GRAPHICS_LISTEN_TYPE_LAST: break; } @@ -27890,6 +27799,7 @@ virDomainGraphicsVNCDefFormatAttrHook(const virDomainGraphicsVNCDef *def, virDomainGraphicsListenDefFormatAddr(listenBuf, glisten, flags); break; case VIR_DOMAIN_GRAPHICS_LISTEN_TYPE_NONE: + case VIR_DOMAIN_GRAPHICS_LISTEN_TYPE_DUMMY: case VIR_DOMAIN_GRAPHICS_LISTEN_TYPE_LAST: break; } @@ -27918,6 +27828,7 @@ virDomainGraphicsDefFormat(virBufferPtr buf, case VIR_DOMAIN_GRAPHICS_TYPE_VNC: if (virDomainGraphicsVNCDefFormatAttr(buf, &def->data.vnc, def, &flags) < 0) return -1; + break; case VIR_DOMAIN_GRAPHICS_TYPE_SDL: @@ -32630,6 +32541,7 @@ virDomainGraphicsSpiceDefCheckAttrHook(const virDomainGraphicsSpiceDef *def G_GN } break; + case VIR_DOMAIN_GRAPHICS_LISTEN_TYPE_DUMMY: case VIR_DOMAIN_GRAPHICS_LISTEN_TYPE_LAST: break; } @@ -32696,6 +32608,7 @@ virDomainGraphicsSpiceDefFormatAttrHook(const virDomainGraphicsSpiceDef *def, } break; + case VIR_DOMAIN_GRAPHICS_LISTEN_TYPE_DUMMY: case VIR_DOMAIN_GRAPHICS_LISTEN_TYPE_LAST: break; } diff --git a/src/conf/domain_conf.h b/src/conf/domain_conf.h index 6273c40..fc4aae2 100644 --- a/src/conf/domain_conf.h +++ b/src/conf/domain_conf.h @@ -1653,7 +1653,8 @@ typedef enum { } virDomainGraphicsSpiceStreamingMode; typedef enum { - VIR_DOMAIN_GRAPHICS_LISTEN_TYPE_NONE = 0, + VIR_DOMAIN_GRAPHICS_LISTEN_TYPE_DUMMY = 0, + VIR_DOMAIN_GRAPHICS_LISTEN_TYPE_NONE, VIR_DOMAIN_GRAPHICS_LISTEN_TYPE_ADDRESS, VIR_DOMAIN_GRAPHICS_LISTEN_TYPE_NETWORK, VIR_DOMAIN_GRAPHICS_LISTEN_TYPE_SOCKET, @@ -1667,13 +1668,14 @@ typedef enum { VIR_DOMAIN_HUB_TYPE_LAST } virDomainHubType; -struct _virDomainGraphicsListenDef { - virDomainGraphicsListenType type; - char *address; - char *network; - char *socket; - bool fromConfig; /* true if the @address is config file originated */ - bool autoGenerated; +struct _virDomainGraphicsListenDef { /* genparse:withhook */ + virDomainGraphicsListenType type; /* xmlattr */ + char *address; /* xmlattr */ + char *network; /* xmlattr */ + char *socket; /* xmlattr */ + /* true if the @address is config file originated */ + int fromConfig; /* xmlattr */ + bool autoGenerated; /* xmlattr */ }; struct _virDomainGraphicsSDLDef { /* genparse, genformat:separate */ diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c index bd98b0a..f60f1e8 100644 --- a/src/qemu/qemu_command.c +++ b/src/qemu/qemu_command.c @@ -7592,6 +7592,7 @@ qemuBuildGraphicsVNCCommandLine(virQEMUDriverConfigPtr cfg, virBufferAddLit(&opt, "none"); break; + case VIR_DOMAIN_GRAPHICS_LISTEN_TYPE_DUMMY: case VIR_DOMAIN_GRAPHICS_LISTEN_TYPE_LAST: break; } @@ -7718,6 +7719,7 @@ qemuBuildGraphicsSPICECommandLine(virQEMUDriverConfigPtr cfg, virBufferAddLit(&opt, "port=0,"); hasInsecure = true; break; + case VIR_DOMAIN_GRAPHICS_LISTEN_TYPE_DUMMY: case VIR_DOMAIN_GRAPHICS_LISTEN_TYPE_LAST: break; } diff --git a/src/qemu/qemu_hotplug.c b/src/qemu/qemu_hotplug.c index e2c6e14..0588745 100644 --- a/src/qemu/qemu_hotplug.c +++ b/src/qemu/qemu_hotplug.c @@ -4085,6 +4085,7 @@ qemuDomainChangeGraphics(virQEMUDriverPtr driver, break; case VIR_DOMAIN_GRAPHICS_LISTEN_TYPE_NONE: + case VIR_DOMAIN_GRAPHICS_LISTEN_TYPE_DUMMY: case VIR_DOMAIN_GRAPHICS_LISTEN_TYPE_LAST: /* nada */ break; diff --git a/src/qemu/qemu_migration_cookie.c b/src/qemu/qemu_migration_cookie.c index cef2555..9a8e7ab 100644 --- a/src/qemu/qemu_migration_cookie.c +++ b/src/qemu/qemu_migration_cookie.c @@ -349,6 +349,7 @@ qemuMigrationCookieAddGraphics(qemuMigrationCookiePtr mig, case VIR_DOMAIN_GRAPHICS_LISTEN_TYPE_SOCKET: case VIR_DOMAIN_GRAPHICS_LISTEN_TYPE_NONE: + case VIR_DOMAIN_GRAPHICS_LISTEN_TYPE_DUMMY: case VIR_DOMAIN_GRAPHICS_LISTEN_TYPE_LAST: break; } diff --git a/src/qemu/qemu_process.c b/src/qemu/qemu_process.c index cfe09d6..db1b47e 100644 --- a/src/qemu/qemu_process.c +++ b/src/qemu/qemu_process.c @@ -4926,6 +4926,7 @@ qemuProcessGraphicsSetupListen(virQEMUDriverPtr driver, break; case VIR_DOMAIN_GRAPHICS_LISTEN_TYPE_NONE: + case VIR_DOMAIN_GRAPHICS_LISTEN_TYPE_DUMMY: case VIR_DOMAIN_GRAPHICS_LISTEN_TYPE_LAST: break; } diff --git a/src/qemu/qemu_validate.c b/src/qemu/qemu_validate.c index 070f1c9..167cdc2 100644 --- a/src/qemu/qemu_validate.c +++ b/src/qemu/qemu_validate.c @@ -3293,6 +3293,7 @@ qemuValidateDomainDeviceDefSPICEGraphics(const virDomainGraphicsDef *graphics, case VIR_DOMAIN_GRAPHICS_LISTEN_TYPE_NONE: break; + case VIR_DOMAIN_GRAPHICS_LISTEN_TYPE_DUMMY: case VIR_DOMAIN_GRAPHICS_LISTEN_TYPE_LAST: break; } -- 2.25.1