From: Daniel P. Berrange Date: Thu, 12 Nov 2009 14:08:43 +0000 (+0000) Subject: Fix formatting of XML for an inactive guest X-Git-Url: http://xenbits.xensource.com/gitweb?a=commitdiff_plain;h=f24e67d24f71f786c93fb16e0c126237d8b50423;p=libvirt.git Fix formatting of XML for an inactive guest If the virDomainDefPtr object has an 'id' of -1, then forcably set the VIR_DOMAIN_XML_INACTIVE flag to ensure generated XML does not include any cruft from the previously running guest such as console PTY path, or VNC port. * src/conf/domain_conf.c: Set VIR_DOMAIN_XML_INACTIVE if def->id is -1. Replace checks for def->id == -1 with check against flags & VIR_DOMAIN_XML_INACTIVE. --- diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c index 8d9408ce6d..0a7eef7bc3 100644 --- a/src/conf/domain_conf.c +++ b/src/conf/domain_conf.c @@ -4408,7 +4408,6 @@ virDomainInputDefFormat(virConnectPtr conn, static int virDomainGraphicsDefFormat(virConnectPtr conn, virBufferPtr buf, - virDomainDefPtr vm, virDomainGraphicsDefPtr def, int flags) { @@ -4425,7 +4424,7 @@ virDomainGraphicsDefFormat(virConnectPtr conn, switch (def->type) { case VIR_DOMAIN_GRAPHICS_TYPE_VNC: if (def->data.vnc.port && - (!def->data.vnc.autoport || vm->id != -1)) + (!def->data.vnc.autoport || !(flags & VIR_DOMAIN_XML_INACTIVE))) virBufferVSprintf(buf, " port='%d'", def->data.vnc.port); else if (def->data.vnc.autoport) @@ -4580,7 +4579,10 @@ char *virDomainDefFormat(virConnectPtr conn, goto cleanup; } - if (def->id >= 0) + if (def->id == -1) + flags |= VIR_DOMAIN_XML_INACTIVE; + + if (!(flags & VIR_DOMAIN_XML_INACTIVE)) virBufferVSprintf(&buf, "\n", type, def->id); else virBufferVSprintf(&buf, "\n", type); @@ -4771,7 +4773,7 @@ char *virDomainDefFormat(virConnectPtr conn, goto cleanup; for (n = 0 ; n < def->ngraphics ; n++) - if (virDomainGraphicsDefFormat(conn, &buf, def, def->graphics[n], flags) < 0) + if (virDomainGraphicsDefFormat(conn, &buf, def->graphics[n], flags) < 0) goto cleanup; }