mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2025-03-26 02:50:32 +03:00
qemuBuildVhostuserCommandLine: Reuse qemuBuildChrChardevStr
There's no need to reinvent the wheel here. We already have a function to format virDomainChrSourceDefPtr. It's called qemuBuildChrChardevStr(). Use that instead of some dummy virBufferAsprintf(). Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
This commit is contained in:
parent
336d4a71fe
commit
0c61cf3158
@ -7781,13 +7781,16 @@ qemuBuildGraphicsCommandLine(virQEMUDriverConfigPtr cfg,
|
||||
}
|
||||
|
||||
static int
|
||||
qemuBuildVhostuserCommandLine(virCommandPtr cmd,
|
||||
qemuBuildVhostuserCommandLine(virQEMUDriverPtr driver,
|
||||
virLogManagerPtr logManager,
|
||||
virCommandPtr cmd,
|
||||
virDomainDefPtr def,
|
||||
virDomainNetDefPtr net,
|
||||
virQEMUCapsPtr qemuCaps,
|
||||
unsigned int bootindex)
|
||||
{
|
||||
virBuffer chardev_buf = VIR_BUFFER_INITIALIZER;
|
||||
virQEMUDriverConfigPtr cfg = virQEMUDriverGetConfig(driver);
|
||||
char *chardev = NULL;
|
||||
virBuffer netdev_buf = VIR_BUFFER_INITIALIZER;
|
||||
unsigned int queues = net->driver.virtio.queues;
|
||||
char *nic = NULL;
|
||||
@ -7800,9 +7803,10 @@ qemuBuildVhostuserCommandLine(virCommandPtr cmd,
|
||||
|
||||
switch ((virDomainChrType) net->data.vhostuser->type) {
|
||||
case VIR_DOMAIN_CHR_TYPE_UNIX:
|
||||
virBufferAsprintf(&chardev_buf, "socket,id=char%s,path=%s%s",
|
||||
net->info.alias, net->data.vhostuser->data.nix.path,
|
||||
net->data.vhostuser->data.nix.listen ? ",server" : "");
|
||||
if (!(chardev = qemuBuildChrChardevStr(logManager, cmd, cfg, def,
|
||||
net->data.vhostuser,
|
||||
net->info.alias, qemuCaps, false)))
|
||||
goto error;
|
||||
break;
|
||||
|
||||
case VIR_DOMAIN_CHR_TYPE_NULL:
|
||||
@ -7820,7 +7824,7 @@ qemuBuildVhostuserCommandLine(virCommandPtr cmd,
|
||||
case VIR_DOMAIN_CHR_TYPE_LAST:
|
||||
virReportError(VIR_ERR_INTERNAL_ERROR,
|
||||
_("vhost-user type '%s' not supported"),
|
||||
virDomainChrTypeToString(net->data.vhostuser->type));
|
||||
virDomainChrTypeToString(net->data.vhostuser->type));
|
||||
goto error;
|
||||
}
|
||||
|
||||
@ -7838,7 +7842,8 @@ qemuBuildVhostuserCommandLine(virCommandPtr cmd,
|
||||
}
|
||||
|
||||
virCommandAddArg(cmd, "-chardev");
|
||||
virCommandAddArgBuffer(cmd, &chardev_buf);
|
||||
virCommandAddArg(cmd, chardev);
|
||||
VIR_FREE(chardev);
|
||||
|
||||
virCommandAddArg(cmd, "-netdev");
|
||||
virCommandAddArgBuffer(cmd, &netdev_buf);
|
||||
@ -7852,11 +7857,13 @@ qemuBuildVhostuserCommandLine(virCommandPtr cmd,
|
||||
|
||||
virCommandAddArgList(cmd, "-device", nic, NULL);
|
||||
VIR_FREE(nic);
|
||||
virObjectUnref(cfg);
|
||||
|
||||
return 0;
|
||||
|
||||
error:
|
||||
virBufferFreeAndReset(&chardev_buf);
|
||||
virObjectUnref(cfg);
|
||||
VIR_FREE(chardev);
|
||||
virBufferFreeAndReset(&netdev_buf);
|
||||
VIR_FREE(nic);
|
||||
|
||||
@ -7864,8 +7871,9 @@ qemuBuildVhostuserCommandLine(virCommandPtr cmd,
|
||||
}
|
||||
|
||||
static int
|
||||
qemuBuildInterfaceCommandLine(virCommandPtr cmd,
|
||||
virQEMUDriverPtr driver,
|
||||
qemuBuildInterfaceCommandLine(virQEMUDriverPtr driver,
|
||||
virLogManagerPtr logManager,
|
||||
virCommandPtr cmd,
|
||||
virDomainDefPtr def,
|
||||
virDomainNetDefPtr net,
|
||||
virQEMUCapsPtr qemuCaps,
|
||||
@ -7885,7 +7893,6 @@ qemuBuildInterfaceCommandLine(virCommandPtr cmd,
|
||||
char **tapfdName = NULL;
|
||||
char **vhostfdName = NULL;
|
||||
virDomainNetType actualType = virDomainNetGetActualType(net);
|
||||
virQEMUDriverConfigPtr cfg = NULL;
|
||||
virNetDevBandwidthPtr actualBandwidth;
|
||||
size_t i;
|
||||
|
||||
@ -7928,8 +7935,6 @@ qemuBuildInterfaceCommandLine(virCommandPtr cmd,
|
||||
return -1;
|
||||
}
|
||||
|
||||
cfg = virQEMUDriverGetConfig(driver);
|
||||
|
||||
switch (actualType) {
|
||||
case VIR_DOMAIN_NET_TYPE_NETWORK:
|
||||
case VIR_DOMAIN_NET_TYPE_BRIDGE:
|
||||
@ -7989,7 +7994,8 @@ qemuBuildInterfaceCommandLine(virCommandPtr cmd,
|
||||
break;
|
||||
|
||||
case VIR_DOMAIN_NET_TYPE_VHOSTUSER:
|
||||
ret = qemuBuildVhostuserCommandLine(cmd, def, net, qemuCaps, bootindex);
|
||||
ret = qemuBuildVhostuserCommandLine(driver, logManager, cmd, def,
|
||||
net, qemuCaps, bootindex);
|
||||
goto cleanup;
|
||||
break;
|
||||
|
||||
@ -8162,7 +8168,6 @@ qemuBuildInterfaceCommandLine(virCommandPtr cmd,
|
||||
VIR_FREE(host);
|
||||
VIR_FREE(tapfdName);
|
||||
VIR_FREE(vhostfdName);
|
||||
virObjectUnref(cfg);
|
||||
return ret;
|
||||
}
|
||||
|
||||
@ -8172,8 +8177,9 @@ qemuBuildInterfaceCommandLine(virCommandPtr cmd,
|
||||
* API domainSetSecurityTapFDLabel that doesn't use the const format.
|
||||
*/
|
||||
static int
|
||||
qemuBuildNetCommandLine(virCommandPtr cmd,
|
||||
virQEMUDriverPtr driver,
|
||||
qemuBuildNetCommandLine(virQEMUDriverPtr driver,
|
||||
virLogManagerPtr logManager,
|
||||
virCommandPtr cmd,
|
||||
virDomainDefPtr def,
|
||||
virQEMUCapsPtr qemuCaps,
|
||||
virNetDevVPortProfileOp vmop,
|
||||
@ -8211,7 +8217,7 @@ qemuBuildNetCommandLine(virCommandPtr cmd,
|
||||
else
|
||||
vlan = i;
|
||||
|
||||
if (qemuBuildInterfaceCommandLine(cmd, driver, def, net,
|
||||
if (qemuBuildInterfaceCommandLine(driver, logManager, cmd, def, net,
|
||||
qemuCaps, vlan, bootNet, vmop,
|
||||
standalone, nnicindexes,
|
||||
nicindexes) < 0)
|
||||
@ -9438,7 +9444,8 @@ qemuBuildCommandLine(virQEMUDriverPtr driver,
|
||||
if (qemuBuildFSDevCommandLine(cmd, def, qemuCaps) < 0)
|
||||
goto error;
|
||||
|
||||
if (qemuBuildNetCommandLine(cmd, driver, def, qemuCaps, vmop, standalone,
|
||||
if (qemuBuildNetCommandLine(driver, logManager, cmd, def,
|
||||
qemuCaps, vmop, standalone,
|
||||
nnicindexes, nicindexes, &bootHostdevNet) < 0)
|
||||
goto error;
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user