qemuBuildChardevCommand(virCommand *cmd,
virQEMUDriverConfig *cfg,
const virDomainChrSourceDef *dev,
- const char *alias,
+ const char *charAlias,
virQEMUCaps *qemuCaps)
{
qemuDomainChrSourcePrivate *chrSourcePriv = QEMU_DOMAIN_CHR_SOURCE_PRIVATE(dev);
g_auto(virBuffer) buf = VIR_BUFFER_INITIALIZER;
bool telnet;
- g_autofree char *charAlias = NULL;
-
- if (!(charAlias = qemuAliasChardevFromDevAlias(alias)))
- return -1;
switch ((virDomainChrType) dev->type) {
case VIR_DOMAIN_CHR_TYPE_NULL:
case VIR_DOMAIN_CHR_TYPE_DEV:
virBufferAsprintf(&buf, "%s,id=%s,path=",
- STRPREFIX(alias, "parallel") ? "parport" : "tty",
+ STRPREFIX(charAlias, "charparallel") ? "parport" : "tty",
charAlias);
virQEMUBuildBufferEscapeComma(&buf, dev->data.file.path);
break;
if (qemuBuildChardevCommand(cmd,
cfg,
priv->monConfig,
- "monitor",
+ "charmonitor",
priv->qemuCaps) < 0)
return -1;
virDomainRNGDef *rng,
virQEMUCaps *qemuCaps)
{
+ g_autofree char *charAlias = qemuAliasChardevFromDevAlias(rng->info.alias);
+
switch ((virDomainRNGBackend) rng->backend) {
case VIR_DOMAIN_RNG_BACKEND_RANDOM:
case VIR_DOMAIN_RNG_BACKEND_BUILTIN:
if (qemuBuildChardevCommand(cmd,
cfg,
rng->source.chardev,
- rng->info.alias,
+ charAlias,
qemuCaps) < 0)
return -1;
break;
virQEMUCaps *qemuCaps)
{
g_autoptr(virQEMUDriverConfig) cfg = virQEMUDriverGetConfig(driver);
+ g_autofree char *charAlias = qemuAliasChardevFromDevAlias(net->info.alias);
switch ((virDomainChrType)net->data.vhostuser->type) {
case VIR_DOMAIN_CHR_TYPE_UNIX:
if (qemuBuildChardevCommand(cmd,
cfg,
net->data.vhostuser,
- net->info.alias,
+ charAlias,
qemuCaps) < 0)
return -1;
break;
break;
case VIR_DOMAIN_SMARTCARD_TYPE_PASSTHROUGH: {
- g_autofree char *chardevalias = g_strdup_printf("char%s", smartcard->info.alias);
+ g_autofree char *charAlias = qemuAliasChardevFromDevAlias(smartcard->info.alias);
if (qemuBuildChardevCommand(cmd,
cfg,
smartcard->data.passthru,
- smartcard->info.alias,
+ charAlias,
qemuCaps) < 0)
return -1;
if (virJSONValueObjectAdd(&props,
"s:driver", "ccid-card-passthru",
- "s:chardev", chardevalias,
+ "s:chardev", charAlias,
NULL) < 0)
return -1;
}
return -1;
if (shmem->server.enabled) {
+ g_autofree char *charAlias = qemuAliasChardevFromDevAlias(shmem->info.alias);
+
if (qemuBuildChardevCommand(cmd,
cfg,
shmem->server.chr,
- shmem->info.alias,
+ charAlias,
qemuCaps) < 0)
return -1;
}
for (i = 0; i < def->nserials; i++) {
virDomainChrDef *serial = def->serials[i];
+ g_autofree char *charAlias = qemuAliasChardevFromDevAlias(serial->info.alias);
if (serial->source->type == VIR_DOMAIN_CHR_TYPE_SPICEPORT && !havespice)
continue;
if (qemuBuildChardevCommand(cmd,
cfg,
serial->source,
- serial->info.alias,
+ charAlias,
qemuCaps) < 0)
return -1;
for (i = 0; i < def->nparallels; i++) {
virDomainChrDef *parallel = def->parallels[i];
+ g_autofree char *charAlias = qemuAliasChardevFromDevAlias(parallel->info.alias);
if (qemuBuildChardevCommand(cmd,
cfg,
parallel->source,
- parallel->info.alias,
+ charAlias,
qemuCaps) < 0)
return -1;
for (i = 0; i < def->nchannels; i++) {
virDomainChrDef *channel = def->channels[i];
g_autoptr(virJSONValue) netdevprops = NULL;
+ g_autofree char *charAlias = qemuAliasChardevFromDevAlias(channel->info.alias);
if (qemuBuildChardevCommand(cmd,
cfg,
channel->source,
- channel->info.alias,
+ charAlias,
qemuCaps) < 0)
return -1;
/* Explicit console devices */
for (i = 0; i < def->nconsoles; i++) {
virDomainChrDef *console = def->consoles[i];
+ g_autofree char *charAlias = qemuAliasChardevFromDevAlias(console->info.alias);
switch (console->targetType) {
case VIR_DOMAIN_CHR_CONSOLE_TARGET_TYPE_SCLP:
if (qemuBuildChardevCommand(cmd,
cfg,
console->source,
- console->info.alias,
+ charAlias,
qemuCaps) < 0)
return -1;
for (i = 0; i < def->nredirdevs; i++) {
virDomainRedirdevDef *redirdev = def->redirdevs[i];
g_autoptr(virJSONValue) devprops = NULL;
+ g_autofree char *charAlias = qemuAliasChardevFromDevAlias(redirdev->info.alias);
if (qemuBuildChardevCommand(cmd,
cfg,
redirdev->source,
- redirdev->info.alias,
+ charAlias,
qemuCaps) < 0)
return -1;