From: Jiri Denemark Date: Thu, 28 Apr 2016 12:59:15 +0000 (+0200) Subject: qemu: Separate formatting from saving into caps cache X-Git-Tag: v1.3.5-rc1~355 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=dccb2629c3906bbef7922a8d0208658e5a686295;p=thirdparty%2Flibvirt.git qemu: Separate formatting from saving into caps cache We will need to use the formatter directly for testing QEMU capabilities code. Signed-off-by: Jiri Denemark --- diff --git a/src/qemu/qemu_capabilities.c b/src/qemu/qemu_capabilities.c index c2ba69dade..f51923b6fd 100644 --- a/src/qemu/qemu_capabilities.c +++ b/src/qemu/qemu_capabilities.c @@ -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, "\n"); virBufferAdjustIndent(&buf, 2); virBufferAsprintf(&buf, "%llu\n", - (long long)qemuCaps->ctime); + (long long) qemuCaps->ctime); virBufferAsprintf(&buf, "%llu\n", - (long long)virGetSelfLastChanged()); + (long long) selfCTime); virBufferAsprintf(&buf, "%lu\n", - (unsigned long)LIBVIR_VERSION_NUMBER); + (unsigned long) selfVersion); if (qemuCaps->usedQMP) virBufferAddLit(&buf, "\n"); @@ -3094,10 +3095,22 @@ virQEMUCapsSaveCache(virQEMUCapsPtr qemuCaps, const char *filename) virBufferAdjustIndent(&buf, -2); virBufferAddLit(&buf, "\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,