const char *host,
int port,
const char *socket,
- const char *tlsAlias)
+ const char *tlsAlias,
+ const char *tlsHostname)
{
g_autoptr(virStorageSource) copysrc = NULL;
}
copysrc->tlsAlias = g_strdup(tlsAlias);
+ copysrc->tlsHostname = g_strdup(tlsHostname);
copysrc->nodestorage = g_strdup_printf("migration-%s-storage", disk->dst);
copysrc->nodeformat = g_strdup_printf("migration-%s-format", disk->dst);
unsigned long long mirror_speed,
unsigned int mirror_shallow,
const char *tlsAlias,
+ const char *tlsHostname,
bool syncWrites)
{
g_autoptr(qemuBlockStorageSourceAttachData) data = NULL;
VIR_DEBUG("starting blockdev mirror for disk=%s to host=%s", disk->dst, host);
- if (!(copysrc = qemuMigrationSrcNBDStorageCopyBlockdevPrepareSource(disk, host, port, socket, tlsAlias)))
+ if (!(copysrc = qemuMigrationSrcNBDStorageCopyBlockdevPrepareSource(disk, host, port, socket,
+ tlsAlias, tlsHostname)))
return -1;
/* Migration via blockdev-mirror was supported sooner than the auto-read-only
unsigned long long mirror_speed,
bool mirror_shallow,
const char *tlsAlias,
+ const char *tlsHostname,
unsigned int flags)
{
qemuDomainObjPrivate *priv = vm->privateData;
mirror_speed,
mirror_shallow,
tlsAlias,
+ tlsHostname,
syncWrites);
} else {
rc = qemuMigrationSrcNBDStorageCopyDriveMirror(driver, vm, diskAlias,
const char **migrate_disks,
virConnectPtr dconn,
const char *tlsAlias,
+ const char *tlsHostname,
const char *nbdURI,
unsigned int flags)
{
}
mirror_speed <<= 20;
+ /* If qemu doesn't support overriding of TLS hostname for NBD connections
+ * we won't attempt it */
+ if (!virQEMUCapsGet(priv->qemuCaps, QEMU_CAPS_BLOCKDEV_NBD_TLS_HOSTNAME))
+ tlsHostname = NULL;
+
/* steal NBD port and thus prevent its propagation back to destination */
port = mig->nbd->port;
mig->nbd->port = 0;
if (qemuMigrationSrcNBDStorageCopyOne(driver, vm, disk, host, port,
socket,
mirror_speed, mirror_shallow,
- tlsAlias, flags) < 0)
+ tlsAlias, tlsHostname, flags) < 0)
return -1;
if (virDomainObjSave(vm, driver->xmlopt, cfg->stateDir) < 0) {
if (storageMigration) {
if (mig->nbd) {
const char *host = "";
+ const char *tlsHostname = qemuMigrationParamsGetTLSHostname(migParams);
if (spec->destType == MIGRATION_DEST_HOST ||
spec->destType == MIGRATION_DEST_CONNECT_HOST) {
priv->migMaxBandwidth,
nmigrate_disks,
migrate_disks,
- dconn, tlsAlias,
+ dconn, tlsAlias, tlsHostname,
nbdURI, flags) < 0) {
goto error;
}