]> git.ipfire.org Git - thirdparty/libvirt.git/commitdiff
xen_vm: convert to typesafe virConf accessors
authorFabiano Fidêncio <fabiano@fidencio.org>
Sun, 27 May 2018 22:28:21 +0000 (00:28 +0200)
committerJán Tomko <jtomko@redhat.com>
Mon, 11 Jun 2018 12:56:49 +0000 (14:56 +0200)
Signed-off-by: Fabiano Fidêncio <fabiano@fidencio.org>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
Signed-off-by: Ján Tomko <jtomko@redhat.com>
src/xenconfig/xen_xm.c

index be50a139092c2abc01c39914e12eb494311a815f..ef52cf425052c432d93949ac97ae3ba92082de13 100644 (file)
@@ -263,20 +263,20 @@ xenParseXMDisk(char *entry, int hvm)
 static int
 xenParseXMDiskList(virConfPtr conf, virDomainDefPtr def)
 {
+    char **disks = NULL, **entries;
     int hvm = def->os.type == VIR_DOMAIN_OSTYPE_HVM;
-    virConfValuePtr list = virConfGetValue(conf, "disk");
+    int ret = -1;
+    int rc;
 
-    if (!list || list->type != VIR_CONF_LIST)
-        return 0;
+    rc = virConfGetValueStringList(conf, "disk", false, &disks);
+    if (rc <= 0)
+        return rc;
 
-    for (list = list->list; list; list = list->next) {
+    for (entries = disks; *entries; entries++) {
         virDomainDiskDefPtr disk;
-        int rc;
+        char *entry = *entries;
 
-        if ((list->type != VIR_CONF_STRING) || (list->str == NULL))
-            continue;
-
-        if (!(disk = xenParseXMDisk(list->str, hvm)))
+        if (!(disk = xenParseXMDisk(entry, hvm)))
             continue;
 
         /* Maintain list in sorted order according to target device name */
@@ -284,10 +284,14 @@ xenParseXMDiskList(virConfPtr conf, virDomainDefPtr def)
         virDomainDiskDefFree(disk);
 
         if (rc < 0)
-            return -1;
+            goto cleanup;
     }
 
-    return 0;
+    ret = 0;
+
+ cleanup:
+    virStringListFree(disks);
+    return ret;
 }