[libvirt PATCH 06/10] virDomainDeviceDriveAddressParseXML: Use virXMLProp*

Tim Wiederhake twiederh at redhat.com
Fri Apr 16 12:20:56 UTC 2021


Signed-off-by: Tim Wiederhake <twiederh at redhat.com>
---
 src/conf/device_conf.c | 33 ++++++++-------------------------
 1 file changed, 8 insertions(+), 25 deletions(-)

diff --git a/src/conf/device_conf.c b/src/conf/device_conf.c
index 621ff1b476..5a98cd8c0f 100644
--- a/src/conf/device_conf.c
+++ b/src/conf/device_conf.c
@@ -316,40 +316,23 @@ int
 virDomainDeviceDriveAddressParseXML(xmlNodePtr node,
                                     virDomainDeviceDriveAddress *addr)
 {
-    g_autofree char *controller = virXMLPropString(node, "controller");
-    g_autofree char *bus = virXMLPropString(node, "bus");
-    g_autofree char *target = virXMLPropString(node, "target");
-    g_autofree char *unit = virXMLPropString(node, "unit");
-
     memset(addr, 0, sizeof(*addr));
 
-    if (controller &&
-        virStrToLong_uip(controller, NULL, 10, &addr->controller) < 0) {
-        virReportError(VIR_ERR_INTERNAL_ERROR, "%s",
-                       _("Cannot parse <address> 'controller' attribute"));
+    if (virXMLPropUInt(node, "controller", 10, VIR_XML_PROP_OPTIONAL,
+                       &addr->controller) < 0)
         return -1;
-    }
 
-    if (bus &&
-        virStrToLong_uip(bus, NULL, 10, &addr->bus) < 0) {
-        virReportError(VIR_ERR_INTERNAL_ERROR, "%s",
-                       _("Cannot parse <address> 'bus' attribute"));
+    if (virXMLPropUInt(node, "bus", 10, VIR_XML_PROP_OPTIONAL,
+                       &addr->bus) < 0)
         return -1;
-    }
 
-    if (target &&
-        virStrToLong_uip(target, NULL, 10, &addr->target) < 0) {
-        virReportError(VIR_ERR_INTERNAL_ERROR, "%s",
-                       _("Cannot parse <address> 'target' attribute"));
+    if (virXMLPropUInt(node, "target", 10, VIR_XML_PROP_OPTIONAL,
+                       &addr->target) < 0)
         return -1;
-    }
 
-    if (unit &&
-        virStrToLong_uip(unit, NULL, 10, &addr->unit) < 0) {
-        virReportError(VIR_ERR_INTERNAL_ERROR, "%s",
-                       _("Cannot parse <address> 'unit' attribute"));
+    if (virXMLPropUInt(node, "unit", 10, VIR_XML_PROP_OPTIONAL,
+                       &addr->unit) < 0)
         return -1;
-    }
 
     return 0;
 }
-- 
2.26.2




More information about the libvir-list mailing list