Add a new parameter that will allow to return the XML stored in the save
image for further manipulation and adjust the callers. This option will
be used in later patches.
---
src/qemu/qemu_driver.c | 18 +++++++++++-------
1 file changed, 11 insertions(+), 7 deletions(-)
diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c
index e41a08e..a276ea5 100644
--- a/src/qemu/qemu_driver.c
+++ b/src/qemu/qemu_driver.c
@@ -5382,6 +5382,7 @@ qemuDomainSaveImageOpen(virQEMUDriverPtr driver,
const char *path,
virDomainDefPtr *ret_def,
virQEMUSaveHeaderPtr ret_header,
+ char **xmlout,
bool bypass_cache,
virFileWrapperFdPtr *wrapperFd,
const char *xmlin, int state, bool edit,
@@ -5504,7 +5505,10 @@ qemuDomainSaveImageOpen(virQEMUDriverPtr driver,
def = tmp;
}
- VIR_FREE(xml);
+ if (xmlout)
+ *xmlout = xml;
+ else
+ VIR_FREE(xml);
*ret_def = def;
*ret_header = header;
@@ -5660,7 +5664,7 @@ qemuDomainRestoreFlags(virConnectPtr conn,
else if (flags & VIR_DOMAIN_SAVE_PAUSED)
state = 0;
- fd = qemuDomainSaveImageOpen(driver, path, &def, &header,
+ fd = qemuDomainSaveImageOpen(driver, path, &def, &header, NULL,
(flags & VIR_DOMAIN_SAVE_BYPASS_CACHE) != 0,
&wrapperFd, dxml, state, false, false);
if (fd < 0)
@@ -5721,8 +5725,8 @@ qemuDomainSaveImageGetXMLDesc(virConnectPtr conn, const char *path,
/* We only take subset of virDomainDefFormat flags. */
virCheckFlags(VIR_DOMAIN_XML_SECURE, NULL);
- fd = qemuDomainSaveImageOpen(driver, path, &def, &header, false, NULL,
- NULL, -1, false, false);
+ fd = qemuDomainSaveImageOpen(driver, path, &def, &header, NULL,
+ false, NULL, NULL, -1, false, false);
if (fd < 0)
goto cleanup;
@@ -5759,8 +5763,8 @@ qemuDomainSaveImageDefineXML(virConnectPtr conn, const char *path,
else if (flags & VIR_DOMAIN_SAVE_PAUSED)
state = 0;
- fd = qemuDomainSaveImageOpen(driver, path, &def, &header, false, NULL,
- dxml, state, true, false);
+ fd = qemuDomainSaveImageOpen(driver, path, &def, &header, NULL,
+ false, NULL, dxml, state, true, false);
if (fd < 0) {
/* Check for special case of no change needed. */
@@ -5824,7 +5828,7 @@ qemuDomainObjRestore(virConnectPtr conn,
virQEMUSaveHeader header;
virFileWrapperFdPtr wrapperFd = NULL;
- fd = qemuDomainSaveImageOpen(driver, path, &def, &header,
+ fd = qemuDomainSaveImageOpen(driver, path, &def, &header, NULL,
bypass_cache, &wrapperFd, NULL, -1, false,
true);
if (fd < 0) {
--
2.1.0