{
virQEMUDriverPtr driver = dconn->privateData;
virDomainDefPtr def = NULL;
+ char *origname = NULL;
int ret = -1;
virCheckFlags(QEMU_MIGRATION_FLAGS, -1);
goto cleanup;
}
- if (!(def = qemuMigrationPrepareDef(driver, dom_xml, dname)))
+ if (!(def = qemuMigrationPrepareDef(driver, dom_xml, dname, &origname)))
goto cleanup;
if (virDomainMigratePrepareTunnelEnsureACL(dconn, def) < 0)
ret = qemuMigrationPrepareTunnel(driver, dconn,
NULL, 0, NULL, NULL, /* No cookies in v2 */
- st, &def, flags);
+ st, &def, origname, flags);
cleanup:
+ VIR_FREE(origname);
virDomainDefFree(def);
return ret;
}
{
virQEMUDriverPtr driver = dconn->privateData;
virDomainDefPtr def = NULL;
+ char *origname = NULL;
int ret = -1;
virCheckFlags(QEMU_MIGRATION_FLAGS, -1);
goto cleanup;
}
- if (!(def = qemuMigrationPrepareDef(driver, dom_xml, dname)))
+ if (!(def = qemuMigrationPrepareDef(driver, dom_xml, dname, &origname)))
goto cleanup;
if (virDomainMigratePrepare2EnsureACL(dconn, def) < 0)
ret = qemuMigrationPrepareDirect(driver, dconn,
NULL, 0, NULL, NULL, /* No cookies */
uri_in, uri_out,
- &def, flags);
+ &def, origname, flags);
cleanup:
+ VIR_FREE(origname);
virDomainDefFree(def);
return ret;
}
{
virQEMUDriverPtr driver = dconn->privateData;
virDomainDefPtr def = NULL;
+ char *origname = NULL;
int ret = -1;
virCheckFlags(QEMU_MIGRATION_FLAGS, -1);
goto cleanup;
}
- if (!(def = qemuMigrationPrepareDef(driver, dom_xml, dname)))
+ if (!(def = qemuMigrationPrepareDef(driver, dom_xml, dname, &origname)))
goto cleanup;
if (virDomainMigratePrepare3EnsureACL(dconn, def) < 0)
cookiein, cookieinlen,
cookieout, cookieoutlen,
uri_in, uri_out,
- &def, flags);
+ &def, origname, flags);
cleanup:
+ VIR_FREE(origname);
virDomainDefFree(def);
return ret;
}
const char *dom_xml = NULL;
const char *dname = NULL;
const char *uri_in = NULL;
+ char *origname = NULL;
int ret = -1;
virCheckFlags(QEMU_MIGRATION_FLAGS, -1);
goto cleanup;
}
- if (!(def = qemuMigrationPrepareDef(driver, dom_xml, dname)))
+ if (!(def = qemuMigrationPrepareDef(driver, dom_xml, dname, &origname)))
goto cleanup;
if (virDomainMigratePrepare3ParamsEnsureACL(dconn, def) < 0)
cookiein, cookieinlen,
cookieout, cookieoutlen,
uri_in, uri_out,
- &def, flags);
+ &def, origname, flags);
cleanup:
+ VIR_FREE(origname);
virDomainDefFree(def);
return ret;
}
{
virQEMUDriverPtr driver = dconn->privateData;
virDomainDefPtr def = NULL;
+ char *origname = NULL;
int ret = -1;
virCheckFlags(QEMU_MIGRATION_FLAGS, -1);
goto cleanup;
}
- if (!(def = qemuMigrationPrepareDef(driver, dom_xml, dname)))
+ if (!(def = qemuMigrationPrepareDef(driver, dom_xml, dname, &origname)))
goto cleanup;
if (virDomainMigratePrepareTunnel3EnsureACL(dconn, def) < 0)
ret = qemuMigrationPrepareTunnel(driver, dconn,
cookiein, cookieinlen,
cookieout, cookieoutlen,
- st, &def, flags);
+ st, &def, origname, flags);
cleanup:
+ VIR_FREE(origname);
virDomainDefFree(def);
return ret;
}
virDomainDefPtr def = NULL;
const char *dom_xml = NULL;
const char *dname = NULL;
+ char *origname = NULL;
int ret = -1;
virCheckFlags(QEMU_MIGRATION_FLAGS, -1);
goto cleanup;
}
- if (!(def = qemuMigrationPrepareDef(driver, dom_xml, dname)))
+ if (!(def = qemuMigrationPrepareDef(driver, dom_xml, dname, &origname)))
goto cleanup;
if (virDomainMigratePrepareTunnel3ParamsEnsureACL(dconn, def) < 0)
ret = qemuMigrationPrepareTunnel(driver, dconn,
cookiein, cookieinlen,
cookieout, cookieoutlen,
- st, &def, flags);
+ st, &def, origname, flags);
cleanup:
+ VIR_FREE(origname);
virDomainDefFree(def);
return ret;
}
char **cookieout,
int *cookieoutlen,
virDomainDefPtr *def,
+ const char *origname,
virStreamPtr st,
unsigned int port,
unsigned long flags)
unsigned long long now;
qemuMigrationCookiePtr mig = NULL;
bool tunnel = !!st;
- char *origname = NULL;
char *xmlout = NULL;
unsigned int cookieFlags;
virCapsPtr caps = NULL;
*def = NULL;
priv = vm->privateData;
- priv->origname = origname;
- origname = NULL;
+ if (VIR_STRDUP(priv->origname, origname) < 0)
+ goto cleanup;
if (!(mig = qemuMigrationEatCookie(driver, vm, cookiein, cookieinlen,
QEMU_MIGRATION_COOKIE_LOCKSTATE |
cleanup:
VIR_FREE(migrateFrom);
- VIR_FREE(origname);
VIR_FREE(xmlout);
VIR_FORCE_CLOSE(dataFD[0]);
VIR_FORCE_CLOSE(dataFD[1]);
int *cookieoutlen,
virStreamPtr st,
virDomainDefPtr *def,
+ const char *origname,
unsigned long flags)
{
int ret;
VIR_DEBUG("driver=%p, dconn=%p, cookiein=%s, cookieinlen=%d, "
"cookieout=%p, cookieoutlen=%p, st=%p, def=%p, "
- "flags=%lx",
+ "origname=%s, flags=%lx",
driver, dconn, NULLSTR(cookiein), cookieinlen,
- cookieout, cookieoutlen, st, *def, flags);
+ cookieout, cookieoutlen, st, *def, origname, flags);
if (st == NULL) {
virReportError(VIR_ERR_INTERNAL_ERROR, "%s",
}
ret = qemuMigrationPrepareAny(driver, dconn, cookiein, cookieinlen,
- cookieout, cookieoutlen, def,
+ cookieout, cookieoutlen, def, origname,
st, 0, flags);
return ret;
}
const char *uri_in,
char **uri_out,
virDomainDefPtr *def,
+ const char *origname,
unsigned long flags)
{
static int port = 0;
VIR_DEBUG("driver=%p, dconn=%p, cookiein=%s, cookieinlen=%d, "
"cookieout=%p, cookieoutlen=%p, uri_in=%s, uri_out=%p, "
- "def=%p, flags=%lx",
+ "def=%p, origname=%s, flags=%lx",
driver, dconn, NULLSTR(cookiein), cookieinlen,
cookieout, cookieoutlen, NULLSTR(uri_in), uri_out,
- *def, flags);
+ *def, origname, flags);
*uri_out = NULL;
VIR_DEBUG("Generated uri_out=%s", *uri_out);
ret = qemuMigrationPrepareAny(driver, dconn, cookiein, cookieinlen,
- cookieout, cookieoutlen, def,
+ cookieout, cookieoutlen, def, origname,
NULL, this_port, flags);
cleanup:
virURIFree(uri);
virDomainDefPtr
qemuMigrationPrepareDef(virQEMUDriverPtr driver,
const char *dom_xml,
- const char *dname)
+ const char *dname,
+ char **origname)
{
virCapsPtr caps = NULL;
virDomainDefPtr def;
+ char *name = NULL;
if (!dom_xml) {
virReportError(VIR_ERR_INTERNAL_ERROR, "%s",
goto cleanup;
if (dname) {
- VIR_FREE(def->name);
+ name = def->name;
if (VIR_STRDUP(def->name, dname) < 0) {
virDomainDefFree(def);
def = NULL;
cleanup:
virObjectUnref(caps);
+ if (def && origname)
+ *origname = name;
+ else
+ VIR_FREE(name);
return def;
}