Signed-off-by: Tim Wiederhake <twiederh(a)redhat.com>
---
src/conf/domain_conf.c | 55 ++++++++++++------------------------------
1 file changed, 15 insertions(+), 40 deletions(-)
diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c
index 367258bf7a..113f4123d7 100644
--- a/src/conf/domain_conf.c
+++ b/src/conf/domain_conf.c
@@ -8273,24 +8273,14 @@ virDomainDiskSourceNetworkParse(xmlNodePtr node,
virStorageSource *src,
unsigned int flags)
{
- int tlsCfgVal;
- g_autofree char *protocol = NULL;
- g_autofree char *haveTLS = NULL;
- g_autofree char *tlsCfg = NULL;
- g_autofree char *sslverifystr = NULL;
+ virStorageNetProtocol protocol;
xmlNodePtr tmpnode;
- if (!(protocol = virXMLPropString(node, "protocol"))) {
- virReportError(VIR_ERR_XML_ERROR, "%s",
- _("missing network source protocol type"));
+ if (virXMLPropEnum(node, "protocol", virStorageNetProtocolTypeFromString,
+ VIR_XML_PROP_REQUIRED, &protocol) < 0)
return -1;
- }
- if ((src->protocol = virStorageNetProtocolTypeFromString(protocol)) <= 0) {
- virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
- _("unknown protocol type '%s'"), protocol);
- return -1;
- }
+ src->protocol = protocol;
if (!(src->path = virXMLPropString(node, "name")) &&
src->protocol != VIR_STORAGE_NET_PROTOCOL_NBD) {
@@ -8299,26 +8289,16 @@ virDomainDiskSourceNetworkParse(xmlNodePtr node,
return -1;
}
- if ((haveTLS = virXMLPropString(node, "tls"))) {
- int value;
-
- if ((value = virTristateBoolTypeFromString(haveTLS)) <= 0) {
- virReportError(VIR_ERR_XML_ERROR,
- _("unknown disk source 'tls' setting
'%s'"), haveTLS);
- return -1;
- }
- src->haveTLS = value;
- }
+ if (virXMLPropTristateBool(node, "tls", VIR_XML_PROP_NONE,
+ &src->haveTLS) < 0)
+ return -1;
- if ((flags & VIR_DOMAIN_DEF_PARSE_STATUS) &&
- (tlsCfg = virXMLPropString(node, "tlsFromConfig"))) {
- if (virStrToLong_i(tlsCfg, NULL, 10, &tlsCfgVal) < 0) {
- virReportError(VIR_ERR_XML_ERROR,
- _("Invalid tlsFromConfig value: %s"),
- tlsCfg);
+ if (flags & VIR_DOMAIN_DEF_PARSE_STATUS) {
+ int value;
+ if (virXMLPropInt(node, "tlsFromConfig", 10, VIR_XML_PROP_NONE,
+ &value) < 0)
return -1;
- }
- src->tlsFromConfig = !!tlsCfgVal;
+ src->tlsFromConfig = !!value;
}
/* for historical reasons we store the volume and image name in one XML
@@ -8364,15 +8344,10 @@ virDomainDiskSourceNetworkParse(xmlNodePtr node,
if ((src->protocol == VIR_STORAGE_NET_PROTOCOL_HTTPS ||
src->protocol == VIR_STORAGE_NET_PROTOCOL_FTPS) &&
- (sslverifystr = virXPathString("string(./ssl/@verify)", ctxt))) {
- int verify;
- if ((verify = virTristateBoolTypeFromString(sslverifystr)) < 0) {
- virReportError(VIR_ERR_XML_ERROR,
- _("invalid ssl verify mode '%s'"),
sslverifystr);
+ (tmpnode = virXPathNode("./ssl", ctxt))) {
+ if (virXMLPropTristateBool(tmpnode, "verify", VIR_XML_PROP_NONE,
+ &src->sslverify) < 0)
return -1;
- }
-
- src->sslverify = verify;
}
if ((src->protocol == VIR_STORAGE_NET_PROTOCOL_HTTP ||
--
2.26.3