Signed-off-by: Shi Lei <shi_lei@xxxxxxxxxxxxxx> --- src/conf/domain_conf.c | 71 ++---------------------------------------- src/conf/domain_conf.h | 16 +++++----- 2 files changed, 10 insertions(+), 77 deletions(-) diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c index aedf278..54b4da9 100644 --- a/src/conf/domain_conf.c +++ b/src/conf/domain_conf.c @@ -14356,7 +14356,7 @@ virDomainGraphicsListensParseXML(virDomainGraphicsDefPtr def, } -static int +int virDomainGraphicsVNCDefParseXMLHook(xmlNodePtr node G_GNUC_UNUSED, virDomainGraphicsVNCDefPtr def, const char *instname G_GNUC_UNUSED, @@ -14401,73 +14401,6 @@ virDomainGraphicsVNCDefParseXMLHook(xmlNodePtr node G_GNUC_UNUSED, } -static int -virDomainGraphicsDefParseXMLVNC(virDomainGraphicsDefPtr def, - xmlNodePtr node, - xmlXPathContextPtr ctxt G_GNUC_UNUSED, - unsigned int flags) -{ - g_autofree char *port = virXMLPropString(node, "port"); - g_autofree char *websocket = virXMLPropString(node, "websocket"); - g_autofree char *websocketGenerated = virXMLPropString(node, "websocketGenerated"); - g_autofree char *sharePolicy = virXMLPropString(node, "sharePolicy"); - g_autofree char *autoport = virXMLPropString(node, "autoport"); - - if (port) { - if (virStrToLong_i(port, NULL, 10, &def->data.vnc.port) < 0) { - virReportError(VIR_ERR_INTERNAL_ERROR, - _("cannot parse vnc port %s"), port); - return -1; - } - } - - if (autoport) - ignore_value(virStringParseYesNo(autoport, &def->data.vnc.autoport)); - - if (websocket) { - if (virStrToLong_i(websocket, - NULL, 10, - &def->data.vnc.websocket) < 0) { - virReportError(VIR_ERR_INTERNAL_ERROR, - _("cannot parse vnc WebSocket port %s"), websocket); - return -1; - } - } - - if (websocketGenerated) - ignore_value(virStringParseYesNo(websocketGenerated, - &def->data.vnc.websocketGenerated)); - - if (sharePolicy) { - int policy = - virDomainGraphicsVNCSharePolicyTypeFromString(sharePolicy); - - if (policy < 0) { - virReportError(VIR_ERR_CONFIG_UNSUPPORTED, - _("unknown vnc display sharing policy '%s'"), - sharePolicy); - return -1; - } else { - def->data.vnc.sharePolicy = policy; - } - } - - def->data.vnc.keymap = virXMLPropString(node, "keymap"); - - if (virDomainGraphicsAuthDefParseXML(node, &def->data.vnc.auth, - NULL, def, NULL) < 0) - return -1; - - if (virDomainGraphicsVNCDefParseXMLHook(node, &def->data.vnc, NULL, def, &flags, - port, websocket, - websocketGenerated, autoport, - sharePolicy) < 0) - return -1; - - return 0; -} - - static int virDomainGraphicsDefParseXMLRDP(virDomainGraphicsDefPtr def, xmlNodePtr node, @@ -14892,7 +14825,7 @@ virDomainGraphicsDefParseXML(virDomainXMLOptionPtr xmlopt, switch (def->type) { case VIR_DOMAIN_GRAPHICS_TYPE_VNC: - if (virDomainGraphicsDefParseXMLVNC(def, node, ctxt, flags) < 0) + if (virDomainGraphicsVNCDefParseXML(node, &def->data.vnc, NULL, def, &flags) < 0) goto error; if (virDomainGraphicsListensParseXML(def, node, ctxt, flags) < 0) goto error; diff --git a/src/conf/domain_conf.h b/src/conf/domain_conf.h index 9724b02..e262246 100644 --- a/src/conf/domain_conf.h +++ b/src/conf/domain_conf.h @@ -1682,15 +1682,15 @@ struct _virDomainGraphicsSDLDef { /* genparse, genformat:separate */ virTristateBool gl; /* xmlattr:gl/enable */ }; -struct _virDomainGraphicsVNCDef { - int port; +struct _virDomainGraphicsVNCDef { /* genparse:withhook */ + int port; /* xmlattr */ bool portReserved; - int websocket; - bool websocketGenerated; - bool autoport; - char *keymap; - virDomainGraphicsAuthDef auth; - int sharePolicy; + int websocket; /* xmlattr */ + bool websocketGenerated; /* xmlattr */ + bool autoport; /* xmlattr */ + char *keymap; /* xmlattr */ + virDomainGraphicsAuthDef auth; /* xmlgroup */ + virDomainGraphicsVNCSharePolicy sharePolicy; /* xmlattr */ }; struct _virDomainGraphicsRDPDef { -- 2.25.1