]> git.ipfire.org Git - thirdparty/libvirt.git/commitdiff
qemu: Separate formatting from saving into caps cache
authorJiri Denemark <jdenemar@redhat.com>
Thu, 28 Apr 2016 12:59:15 +0000 (14:59 +0200)
committerJiri Denemark <jdenemar@redhat.com>
Fri, 6 May 2016 08:27:28 +0000 (10:27 +0200)
We will need to use the formatter directly for testing QEMU capabilities
code.

Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
src/qemu/qemu_capabilities.c

index c2ba69dadea11f4a80bf05a8c7a683376004ecde..f51923b6fd7358346bb0d7ac4c33bf721dc56885 100644 (file)
@@ -3019,23 +3019,24 @@ virQEMUCapsLoadCache(virQEMUCapsPtr qemuCaps, const char *filename,
 }
 
 
-static int
-virQEMUCapsSaveCache(virQEMUCapsPtr qemuCaps, const char *filename)
+static char *
+virQEMUCapsFormatCache(virQEMUCapsPtr qemuCaps,
+                       time_t selfCTime,
+                       unsigned long selfVersion)
 {
     virBuffer buf = VIR_BUFFER_INITIALIZER;
-    char *xml = NULL;
-    int ret = -1;
+    char *ret = NULL;
     size_t i;
 
     virBufferAddLit(&buf, "<qemuCaps>\n");
     virBufferAdjustIndent(&buf, 2);
 
     virBufferAsprintf(&buf, "<qemuctime>%llu</qemuctime>\n",
-                      (long long)qemuCaps->ctime);
+                      (long long) qemuCaps->ctime);
     virBufferAsprintf(&buf, "<selfctime>%llu</selfctime>\n",
-                      (long long)virGetSelfLastChanged());
+                      (long long) selfCTime);
     virBufferAsprintf(&buf, "<selfvers>%lu</selfvers>\n",
-                      (unsigned long)LIBVIR_VERSION_NUMBER);
+                      (unsigned long) selfVersion);
 
     if (qemuCaps->usedQMP)
         virBufferAddLit(&buf, "<usedQMP/>\n");
@@ -3094,10 +3095,22 @@ virQEMUCapsSaveCache(virQEMUCapsPtr qemuCaps, const char *filename)
     virBufferAdjustIndent(&buf, -2);
     virBufferAddLit(&buf, "</qemuCaps>\n");
 
-    if (virBufferCheckError(&buf) < 0)
-        goto cleanup;
+    if (virBufferCheckError(&buf) == 0)
+        ret = virBufferContentAndReset(&buf);
+
+    return ret;
+}
+
+
+static int
+virQEMUCapsSaveCache(virQEMUCapsPtr qemuCaps, const char *filename)
+{
+    char *xml = NULL;
+    int ret = -1;
 
-    xml = virBufferContentAndReset(&buf);
+    xml = virQEMUCapsFormatCache(qemuCaps,
+                                 virGetSelfLastChanged(),
+                                 LIBVIR_VERSION_NUMBER);
 
     if (virFileWriteStr(filename, xml, 0600) < 0) {
         virReportSystemError(errno,