mirror of https://gitee.com/openkylin/libvirt.git
Generate unique socket file
It's possible to have more than one unnamed virtio-serial unix channel. We need to generate a unique name for each channel. Currently, we use ".../unknown.sock" for all of them. Better practice would be to specify an explicit target path name; however, in the absence of that, we need uniqueness in the names we generate internally. Before the changes we'd get /var/lib/libvirt/qemu/channel/target/unknown.sock for each instance of <channel type='unix'> <source mode='bind'/> <target type='virtio'/> </channel> Now, we get vioser-00-00-01.sock, vioser-00-00-02.sock, etc. Signed-off-by: Scott Garfinkle <seg@us.ibm.com>
This commit is contained in:
parent
eaf2c9f891
commit
a7bc2c8cfd
|
@ -7254,18 +7254,28 @@ 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 (channel->targetType != VIR_DOMAIN_CHR_CHANNEL_TARGET_TYPE_VIRTIO ||
|
||||
channel->source->type != VIR_DOMAIN_CHR_TYPE_UNIX ||
|
||||
channel->source->data.nix.path)
|
||||
return 0;
|
||||
|
||||
if (channel->target.name) {
|
||||
if (virAsprintf(&channel->source->data.nix.path,
|
||||
"%s/%s", domainChannelTargetDir,
|
||||
channel->target.name ? channel->target.name
|
||||
: "unknown.sock") < 0)
|
||||
channel->target.name) < 0)
|
||||
return -1;
|
||||
} else { // Generate a unique name
|
||||
if (virAsprintf(&channel->source->data.nix.path,
|
||||
"%s/vioser-%02d-%02d-%02d.sock",
|
||||
domainChannelTargetDir,
|
||||
channel->info.addr.vioserial.controller,
|
||||
channel->info.addr.vioserial.bus,
|
||||
channel->info.addr.vioserial.port) < 0)
|
||||
return -1;
|
||||
|
||||
channel->source->data.nix.listen = true;
|
||||
}
|
||||
|
||||
channel->source->data.nix.listen = true;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
|
|
@ -29,7 +29,7 @@ path=/tmp/channel/domain--1-QEMUGuest1/org.qemu.guest_agent.0,server,nowait \
|
|||
-device virtserialport,bus=virtio-serial0.0,nr=1,chardev=charchannel0,\
|
||||
id=channel0,name=org.qemu.guest_agent.0 \
|
||||
-chardev socket,id=charchannel1,\
|
||||
path=/tmp/channel/domain--1-QEMUGuest1/unknown.sock,server,nowait \
|
||||
path=/tmp/channel/domain--1-QEMUGuest1/vioser-00-00-02.sock,server,nowait \
|
||||
-device virtserialport,bus=virtio-serial0.0,nr=2,chardev=charchannel1,\
|
||||
id=channel1 \
|
||||
-chardev socket,id=charchannel2,path=/tmp/channel/domain--1-QEMUGuest1/ble,\
|
||||
|
|
Loading…
Reference in New Issue