qemu: handle reconnect on chardev hotplug

The patch passes the reconnect timeout to QEMU by monitor on
chardev hotplug.

Signed-off-by: ZhiPeng Lu <lu.zhipeng@zte.com.cn>
Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
This commit is contained in:
ZhiPeng Lu 2017-09-13 08:33:40 +08:00 committed by Michal Privoznik
parent c120ce1609
commit 0dde16be73

View File

@ -6441,6 +6441,16 @@ int qemuMonitorJSONGetTPMTypes(qemuMonitorPtr mon,
return qemuMonitorJSONGetStringArray(mon, "query-tpm-types", tpmtypes);
}
static int
qemuMonitorJSONBuildChrChardevReconnect(virJSONValuePtr object,
const virDomainChrSourceReconnectDef *def)
{
if (def->enabled != VIR_TRISTATE_BOOL_YES)
return 0;
return virJSONValueObjectAppendNumberUint(object, "reconnect", def->timeout);
}
static virJSONValuePtr
qemuMonitorJSONAttachCharDevCommand(const char *chrID,
const virDomainChrSourceDef *chr)
@ -6505,6 +6515,9 @@ qemuMonitorJSONAttachCharDevCommand(const char *chrID,
if (virJSONValueObjectAppendString(data, "tls-creds", tlsalias) < 0)
goto cleanup;
}
if (qemuMonitorJSONBuildChrChardevReconnect(data, &chr->data.tcp.reconnect) < 0)
goto cleanup;
break;
case VIR_DOMAIN_CHR_TYPE_UDP:
@ -6542,6 +6555,9 @@ qemuMonitorJSONAttachCharDevCommand(const char *chrID,
if (virJSONValueObjectAppendBoolean(data, "wait", false) < 0 ||
virJSONValueObjectAppendBoolean(data, "server", chr->data.nix.listen) < 0)
goto cleanup;
if (qemuMonitorJSONBuildChrChardevReconnect(data, &chr->data.nix.reconnect) < 0)
goto cleanup;
break;
case VIR_DOMAIN_CHR_TYPE_SPICEVMC: