mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2025-02-21 19:02:25 +00:00
qemu: handle missing bind host/service on chardev hotplug
On domain startup, bind host or bind service can be omitted and we will format a working command line. Extend this to hotplug as well and specify the service to QEMU even if the host is missing. https://bugzilla.redhat.com/show_bug.cgi?id=1452441
This commit is contained in:
parent
65bb16d9e8
commit
2277edb964
@ -6435,6 +6435,8 @@ qemuMonitorJSONAttachCharDevCommand(const char *chrID,
|
||||
virJSONValuePtr data = NULL;
|
||||
virJSONValuePtr addr = NULL;
|
||||
const char *backend_type = NULL;
|
||||
const char *host;
|
||||
const char *port;
|
||||
char *tlsalias = NULL;
|
||||
bool telnet;
|
||||
|
||||
@ -6498,9 +6500,14 @@ qemuMonitorJSONAttachCharDevCommand(const char *chrID,
|
||||
virJSONValueObjectAppend(data, "remote", addr) < 0)
|
||||
goto cleanup;
|
||||
|
||||
if (chr->data.udp.bindHost) {
|
||||
addr = qemuMonitorJSONBuildInetSocketAddress(chr->data.udp.bindHost,
|
||||
chr->data.udp.bindService);
|
||||
host = chr->data.udp.bindHost;
|
||||
port = chr->data.udp.bindService;
|
||||
if (host || port) {
|
||||
if (!host)
|
||||
host = "";
|
||||
if (!port)
|
||||
port = "";
|
||||
addr = qemuMonitorJSONBuildInetSocketAddress(host, port);
|
||||
if (!addr ||
|
||||
virJSONValueObjectAppend(data, "local", addr) < 0)
|
||||
goto cleanup;
|
||||
|
@ -895,6 +895,17 @@ qemuMonitorJSONTestAttachChardev(virDomainXMLOptionPtr xmlopt)
|
||||
"'data':{'host':'localhost',"
|
||||
"'port':'4321'}}}}}");
|
||||
|
||||
chr.data.udp.bindHost = NULL;
|
||||
chr.data.udp.bindService = (char *) "4321";
|
||||
CHECK("udp", false,
|
||||
"{'id':'alias',"
|
||||
"'backend':{'type':'udp',"
|
||||
"'data':{'remote':{'type':'inet',"
|
||||
"'data':{'host':'example.com',"
|
||||
"'port':'1234'}},"
|
||||
"'local':{'type':'inet',"
|
||||
"'data':{'host':'',"
|
||||
"'port':'4321'}}}}}");
|
||||
memset(&chr, 0, sizeof(chr));
|
||||
chr.type = VIR_DOMAIN_CHR_TYPE_UNIX;
|
||||
chr.data.nix.path = (char *) "/path/to/socket";
|
||||
|
Loading…
x
Reference in New Issue
Block a user