From: Peter Krempa Date: Mon, 28 Nov 2022 15:37:10 +0000 (+0100) Subject: conf: Convert 'protocol' field of TCP char device backend to proper type X-Git-Url: http://xenbits.xensource.com/gitweb?a=commitdiff_plain;h=37789642076a911e8478c02d7cf2749872fa82fb;p=libvirt.git conf: Convert 'protocol' field of TCP char device backend to proper type Use virDomainChrTcpProtocol as type, convert the parser to use virXMLPropEnum and fix one switch statement in the VMX driver. Signed-off-by: Peter Krempa Reviewed-by: Ján Tomko --- diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c index cf4b1b2aef..7f6a91c427 100644 --- a/src/conf/domain_conf.c +++ b/src/conf/domain_conf.c @@ -10282,18 +10282,13 @@ static int virDomainChrSourceDefParseProtocol(virDomainChrSourceDef *def, xmlNodePtr protocol) { - g_autofree char *prot = NULL; - if (def->type != VIR_DOMAIN_CHR_TYPE_TCP) return 0; - if ((prot = virXMLPropString(protocol, "type")) && - (def->data.tcp.protocol = - virDomainChrTcpProtocolTypeFromString(prot)) < 0) { - virReportError(VIR_ERR_CONFIG_UNSUPPORTED, - _("Unknown protocol '%1$s'"), prot); + if (virXMLPropEnum(protocol, "type", + virDomainChrTcpProtocolTypeFromString, + VIR_XML_PROP_NONE, &def->data.tcp.protocol) < 0) return -1; - } return 0; } diff --git a/src/conf/domain_conf.h b/src/conf/domain_conf.h index 659299bdd1..a15af4fae3 100644 --- a/src/conf/domain_conf.h +++ b/src/conf/domain_conf.h @@ -1339,7 +1339,7 @@ struct _virDomainChrSourceDef { char *host; char *service; bool listen; - int protocol; + virDomainChrTcpProtocol protocol; bool tlscreds; virTristateBool haveTLS; bool tlsFromConfig; diff --git a/src/vmx/vmx.c b/src/vmx/vmx.c index de16c1f634..132e54e15f 100644 --- a/src/vmx/vmx.c +++ b/src/vmx/vmx.c @@ -4203,10 +4203,9 @@ virVMXFormatSerial(virVMXContext *ctx, virDomainChrDef *def, break; default: - virReportError(VIR_ERR_CONFIG_UNSUPPORTED, - _("Unsupported character device TCP protocol '%1$s'"), - virDomainChrTcpProtocolTypeToString( - def->source->data.tcp.protocol)); + case VIR_DOMAIN_CHR_TCP_PROTOCOL_LAST: + virReportEnumRangeError(virDomainChrTcpProtocol, + def->source->data.tcp.protocol); return -1; }