qemuBuildChannelsCommandLine(virLogManagerPtr logManager,
virCommandPtr cmd,
const virDomainDef *def,
- virQEMUCapsPtr qemuCaps,
- const char *domainChannelTargetDir)
+ virQEMUCapsPtr qemuCaps)
{
size_t i;
break;
case VIR_DOMAIN_CHR_CHANNEL_TARGET_TYPE_VIRTIO:
- /*
- * TODO: Refactor so that we generate this (and onther
- * things) somewhere else then where we are building the
- * command line.
- */
- if (channel->source.type == VIR_DOMAIN_CHR_TYPE_UNIX &&
- !channel->source.data.nix.path) {
- if (virAsprintf(&channel->source.data.nix.path,
- "%s/%s", domainChannelTargetDir,
- channel->target.name ? channel->target.name
- : "unknown.sock") < 0)
- return -1;
-
- channel->source.data.nix.listen = true;
- }
-
if (virQEMUCapsGet(qemuCaps, QEMU_CAPS_DEVICE_SPICEVMC) &&
channel->source.type == VIR_DOMAIN_CHR_TYPE_SPICEVMC) {
/* spicevmc was originally introduced via a -device
virBitmapPtr nodeset,
size_t *nnicindexes,
int **nicindexes,
- const char *domainLibDir,
- const char *domainChannelTargetDir)
+ const char *domainLibDir)
{
size_t i;
char uuid[VIR_UUID_STRING_BUFLEN];
if (qemuBuildParallelsCommandLine(logManager, cmd, def, qemuCaps) < 0)
goto error;
- if (qemuBuildChannelsCommandLine(logManager, cmd, def, qemuCaps,
- domainChannelTargetDir) < 0)
+ if (qemuBuildChannelsCommandLine(logManager, cmd, def, qemuCaps) < 0)
goto error;
if (qemuBuildConsoleCommandLine(logManager, cmd, def, qemuCaps) < 0)
return 0;
}
+
+
+int
+qemuDomainPrepareChannel(virDomainChrDefPtr channel,
+ const char *domainChannelTargetDir)
+{
+ if (channel->targetType == VIR_DOMAIN_CHR_CHANNEL_TARGET_TYPE_VIRTIO &&
+ channel->source.type == VIR_DOMAIN_CHR_TYPE_UNIX &&
+ !channel->source.data.nix.path) {
+ if (virAsprintf(&channel->source.data.nix.path,
+ "%s/%s", domainChannelTargetDir,
+ channel->target.name ? channel->target.name
+ : "unknown.sock") < 0)
+ return -1;
+
+ channel->source.data.nix.listen = true;
+ }
+
+ return 0;
+}
if (qemuDomainSecretPrepare(conn, vm) < 0)
goto cleanup;
+ for (i = 0; i < vm->def->nchannels; i++) {
+ if (qemuDomainPrepareChannel(vm->def->channels[i],
+ priv->channelTargetDir) < 0)
+ goto cleanup;
+ }
+
if (VIR_ALLOC(priv->monConfig) < 0)
goto cleanup;
qemuCheckFips(),
priv->autoNodeset,
&nnicindexes, &nicindexes,
- priv->libDir,
- priv->channelTargetDir)))
+ priv->libDir)))
goto cleanup;
if (incoming && incoming->fd != -1)
priv->autoNodeset,
NULL,
NULL,
- priv->libDir,
- priv->channelTargetDir);
+ priv->libDir);
cleanup:
return cmd;