|
|
c8c376 |
From cc05f5db0c1051dc3e1ded20410fce4560b19ea3 Mon Sep 17 00:00:00 2001
|
|
|
c8c376 |
Message-Id: <cc05f5db0c1051dc3e1ded20410fce4560b19ea3@dist-git>
|
|
|
c8c376 |
From: Michal Privoznik <mprivozn@redhat.com>
|
|
|
c8c376 |
Date: Tue, 8 Nov 2016 13:42:09 +0100
|
|
|
c8c376 |
Subject: [PATCH] qemuBuildChrChardevStr: Introduce @nowait argument
|
|
|
c8c376 |
|
|
|
c8c376 |
RHEL-7.3: https://bugzilla.redhat.com/show_bug.cgi?id=1366108
|
|
|
c8c376 |
RHEL-7.3.z: https://bugzilla.redhat.com/show_bug.cgi?id=1392032
|
|
|
c8c376 |
|
|
|
c8c376 |
This alone makes not much sense. But the aim is to reuse this
|
|
|
c8c376 |
function in qemuBuildVhostuserCommandLine() where 'nowait' is not
|
|
|
c8c376 |
supported for vhost-user devices.
|
|
|
c8c376 |
|
|
|
c8c376 |
Conflict: Because e3d3c04a is not backported.
|
|
|
c8c376 |
|
|
|
c8c376 |
Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
|
|
|
c8c376 |
(cherry picked from commit 336d4a71feb1cd68df13e1812e86971c61553522)
|
|
|
c8c376 |
Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
|
|
|
c8c376 |
---
|
|
|
c8c376 |
src/qemu/qemu_command.c | 36 ++++++++++++++++++++----------------
|
|
|
c8c376 |
1 file changed, 20 insertions(+), 16 deletions(-)
|
|
|
c8c376 |
|
|
|
c8c376 |
diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c
|
|
|
c8c376 |
index d88ee5b6b..d28a367cc 100644
|
|
|
c8c376 |
--- a/src/qemu/qemu_command.c
|
|
|
c8c376 |
+++ b/src/qemu/qemu_command.c
|
|
|
c8c376 |
@@ -4891,7 +4891,8 @@ qemuBuildChrChardevStr(virLogManagerPtr logManager,
|
|
|
c8c376 |
const virDomainDef *def,
|
|
|
c8c376 |
const virDomainChrSourceDef *dev,
|
|
|
c8c376 |
const char *alias,
|
|
|
c8c376 |
- virQEMUCapsPtr qemuCaps)
|
|
|
c8c376 |
+ virQEMUCapsPtr qemuCaps,
|
|
|
c8c376 |
+ bool nowait)
|
|
|
c8c376 |
{
|
|
|
c8c376 |
virBuffer buf = VIR_BUFFER_INITIALIZER;
|
|
|
c8c376 |
bool telnet;
|
|
|
c8c376 |
@@ -4964,19 +4965,22 @@ qemuBuildChrChardevStr(virLogManagerPtr logManager,
|
|
|
c8c376 |
case VIR_DOMAIN_CHR_TYPE_TCP:
|
|
|
c8c376 |
telnet = dev->data.tcp.protocol == VIR_DOMAIN_CHR_TCP_PROTOCOL_TELNET;
|
|
|
c8c376 |
virBufferAsprintf(&buf,
|
|
|
c8c376 |
- "socket,id=char%s,host=%s,port=%s%s%s",
|
|
|
c8c376 |
+ "socket,id=char%s,host=%s,port=%s%s",
|
|
|
c8c376 |
alias,
|
|
|
c8c376 |
dev->data.tcp.host,
|
|
|
c8c376 |
dev->data.tcp.service,
|
|
|
c8c376 |
- telnet ? ",telnet" : "",
|
|
|
c8c376 |
- dev->data.tcp.listen ? ",server,nowait" : "");
|
|
|
c8c376 |
+ telnet ? ",telnet" : "");
|
|
|
c8c376 |
+
|
|
|
c8c376 |
+ if (dev->data.tcp.listen)
|
|
|
c8c376 |
+ virBufferAdd(&buf, nowait ? ",server,nowait" : ",server", -1);
|
|
|
c8c376 |
+
|
|
|
c8c376 |
break;
|
|
|
c8c376 |
|
|
|
c8c376 |
case VIR_DOMAIN_CHR_TYPE_UNIX:
|
|
|
c8c376 |
virBufferAsprintf(&buf, "socket,id=char%s,path=", alias);
|
|
|
c8c376 |
virQEMUBuildBufferEscapeComma(&buf, dev->data.nix.path);
|
|
|
c8c376 |
if (dev->data.nix.listen)
|
|
|
c8c376 |
- virBufferAddLit(&buf, ",server,nowait");
|
|
|
c8c376 |
+ virBufferAdd(&buf, nowait ? ",server,nowait" : ",server", -1);
|
|
|
c8c376 |
break;
|
|
|
c8c376 |
|
|
|
c8c376 |
case VIR_DOMAIN_CHR_TYPE_SPICEVMC:
|
|
|
c8c376 |
@@ -5300,7 +5304,7 @@ qemuBuildMonitorCommandLine(virLogManagerPtr logManager,
|
|
|
c8c376 |
|
|
|
c8c376 |
if (!(chrdev = qemuBuildChrChardevStr(logManager, cmd, cfg, def,
|
|
|
c8c376 |
monitor_chr, "monitor",
|
|
|
c8c376 |
- qemuCaps)))
|
|
|
c8c376 |
+ qemuCaps, true)))
|
|
|
c8c376 |
return -1;
|
|
|
c8c376 |
virCommandAddArg(cmd, "-chardev");
|
|
|
c8c376 |
virCommandAddArg(cmd, chrdev);
|
|
|
c8c376 |
@@ -5460,7 +5464,7 @@ qemuBuildRNGBackendChrdevStr(virLogManagerPtr logManager,
|
|
|
c8c376 |
case VIR_DOMAIN_RNG_BACKEND_EGD:
|
|
|
c8c376 |
if (!(*chr = qemuBuildChrChardevStr(logManager, cmd, cfg, def,
|
|
|
c8c376 |
rng->source.chardev,
|
|
|
c8c376 |
- rng->info.alias, qemuCaps)))
|
|
|
c8c376 |
+ rng->info.alias, qemuCaps, true)))
|
|
|
c8c376 |
return -1;
|
|
|
c8c376 |
}
|
|
|
c8c376 |
|
|
|
c8c376 |
@@ -8461,7 +8465,7 @@ qemuBuildSmartcardCommandLine(virLogManagerPtr logManager,
|
|
|
c8c376 |
if (!(devstr = qemuBuildChrChardevStr(logManager, cmd, cfg, def,
|
|
|
c8c376 |
&smartcard->data.passthru,
|
|
|
c8c376 |
smartcard->info.alias,
|
|
|
c8c376 |
- qemuCaps))) {
|
|
|
c8c376 |
+ qemuCaps, true))) {
|
|
|
c8c376 |
virBufferFreeAndReset(&opt;;
|
|
|
c8c376 |
return -1;
|
|
|
c8c376 |
}
|
|
|
c8c376 |
@@ -8594,7 +8598,7 @@ qemuBuildShmemBackendChrStr(virLogManagerPtr logManager,
|
|
|
c8c376 |
|
|
|
c8c376 |
devstr = qemuBuildChrChardevStr(logManager, cmd, cfg, def,
|
|
|
c8c376 |
&shmem->server.chr,
|
|
|
c8c376 |
- shmem->info.alias, qemuCaps);
|
|
|
c8c376 |
+ shmem->info.alias, qemuCaps, true);
|
|
|
c8c376 |
|
|
|
c8c376 |
return devstr;
|
|
|
c8c376 |
}
|
|
|
c8c376 |
@@ -8764,7 +8768,7 @@ qemuBuildSerialCommandLine(virLogManagerPtr logManager,
|
|
|
c8c376 |
if (!(devstr = qemuBuildChrChardevStr(logManager, cmd, cfg, def,
|
|
|
c8c376 |
&serial->source,
|
|
|
c8c376 |
serial->info.alias,
|
|
|
c8c376 |
- qemuCaps)))
|
|
|
c8c376 |
+ qemuCaps, true)))
|
|
|
c8c376 |
return -1;
|
|
|
c8c376 |
virCommandAddArg(cmd, "-chardev");
|
|
|
c8c376 |
virCommandAddArg(cmd, devstr);
|
|
|
c8c376 |
@@ -8803,7 +8807,7 @@ qemuBuildParallelsCommandLine(virLogManagerPtr logManager,
|
|
|
c8c376 |
if (!(devstr = qemuBuildChrChardevStr(logManager, cmd, cfg, def,
|
|
|
c8c376 |
¶llel->source,
|
|
|
c8c376 |
parallel->info.alias,
|
|
|
c8c376 |
- qemuCaps)))
|
|
|
c8c376 |
+ qemuCaps, true)))
|
|
|
c8c376 |
return -1;
|
|
|
c8c376 |
virCommandAddArg(cmd, "-chardev");
|
|
|
c8c376 |
virCommandAddArg(cmd, devstr);
|
|
|
c8c376 |
@@ -8849,7 +8853,7 @@ qemuBuildChannelsCommandLine(virLogManagerPtr logManager,
|
|
|
c8c376 |
if (!(devstr = qemuBuildChrChardevStr(logManager, cmd, cfg, def,
|
|
|
c8c376 |
&channel->source,
|
|
|
c8c376 |
channel->info.alias,
|
|
|
c8c376 |
- qemuCaps)))
|
|
|
c8c376 |
+ qemuCaps, true)))
|
|
|
c8c376 |
return -1;
|
|
|
c8c376 |
virCommandAddArg(cmd, "-chardev");
|
|
|
c8c376 |
virCommandAddArg(cmd, devstr);
|
|
|
c8c376 |
@@ -8872,7 +8876,7 @@ qemuBuildChannelsCommandLine(virLogManagerPtr logManager,
|
|
|
c8c376 |
if (!(devstr = qemuBuildChrChardevStr(logManager, cmd, cfg, def,
|
|
|
c8c376 |
&channel->source,
|
|
|
c8c376 |
channel->info.alias,
|
|
|
c8c376 |
- qemuCaps)))
|
|
|
c8c376 |
+ qemuCaps, true)))
|
|
|
c8c376 |
return -1;
|
|
|
c8c376 |
virCommandAddArg(cmd, "-chardev");
|
|
|
c8c376 |
virCommandAddArg(cmd, devstr);
|
|
|
c8c376 |
@@ -8915,7 +8919,7 @@ qemuBuildConsoleCommandLine(virLogManagerPtr logManager,
|
|
|
c8c376 |
if (!(devstr = qemuBuildChrChardevStr(logManager, cmd, cfg, def,
|
|
|
c8c376 |
&console->source,
|
|
|
c8c376 |
console->info.alias,
|
|
|
c8c376 |
- qemuCaps)))
|
|
|
c8c376 |
+ qemuCaps, true)))
|
|
|
c8c376 |
return -1;
|
|
|
c8c376 |
virCommandAddArg(cmd, "-chardev");
|
|
|
c8c376 |
virCommandAddArg(cmd, devstr);
|
|
|
c8c376 |
@@ -8929,7 +8933,7 @@ qemuBuildConsoleCommandLine(virLogManagerPtr logManager,
|
|
|
c8c376 |
if (!(devstr = qemuBuildChrChardevStr(logManager, cmd, cfg, def,
|
|
|
c8c376 |
&console->source,
|
|
|
c8c376 |
console->info.alias,
|
|
|
c8c376 |
- qemuCaps)))
|
|
|
c8c376 |
+ qemuCaps, true)))
|
|
|
c8c376 |
return -1;
|
|
|
c8c376 |
virCommandAddArg(cmd, "-chardev");
|
|
|
c8c376 |
virCommandAddArg(cmd, devstr);
|
|
|
c8c376 |
@@ -9058,7 +9062,7 @@ qemuBuildRedirdevCommandLine(virLogManagerPtr logManager,
|
|
|
c8c376 |
if (!(devstr = qemuBuildChrChardevStr(logManager, cmd, cfg, def,
|
|
|
c8c376 |
&redirdev->source.chr,
|
|
|
c8c376 |
redirdev->info.alias,
|
|
|
c8c376 |
- qemuCaps))) {
|
|
|
c8c376 |
+ qemuCaps, true))) {
|
|
|
c8c376 |
return -1;
|
|
|
c8c376 |
}
|
|
|
c8c376 |
|
|
|
c8c376 |
--
|
|
|
c8c376 |
2.11.0
|
|
|
c8c376 |
|