}
if (qemuMonitorAddNetdev(priv->mon, &netprops,
- NULL, NULL, 0,
slirpfd, slirpfdName) < 0) {
qemuDomainObjExitMonitor(vm);
virDomainAuditNet(vm, NULL, net, "attach", false);
if (netdevprops) {
if (qemuMonitorAddNetdev(priv->mon, &netdevprops,
- NULL, NULL, 0, -1, NULL) < 0)
+ -1, NULL) < 0)
goto exit_monitor;
}
int
qemuMonitorAddNetdev(qemuMonitor *mon,
virJSONValue **props,
- int *tapfd, char **tapfdName, int tapfdSize,
int slirpfd, char *slirpfdName)
{
int ret = -1;
- size_t i = 0;
- VIR_DEBUG("props=%p tapfd=%p tapfdName=%p tapfdSize=%d"
+ VIR_DEBUG("props=%p "
"slirpfd=%d slirpfdName=%s",
- props, tapfd, tapfdName, tapfdSize,
+ props,
slirpfd, slirpfdName);
QEMU_CHECK_MONITOR(mon);
- for (i = 0; i < tapfdSize; i++) {
- if (qemuMonitorSendFileHandle(mon, tapfdName[i], tapfd[i]) < 0)
- goto cleanup;
- }
-
if (slirpfd > 0 &&
qemuMonitorSendFileHandle(mon, slirpfdName, slirpfd) < 0)
goto cleanup;
cleanup:
if (ret < 0) {
- while (i--) {
- if (qemuMonitorCloseFileHandle(mon, tapfdName[i]) < 0)
- VIR_WARN("failed to close device handle '%s'", tapfdName[i]);
- }
if (qemuMonitorCloseFileHandle(mon, slirpfdName) < 0)
VIR_WARN("failed to close device handle '%s'", slirpfdName);
}
int qemuMonitorAddNetdev(qemuMonitor *mon,
virJSONValue **props,
- int *tapfd, char **tapfdName, int tapfdSize,
int slirpfd, char *slirpfdName);
int qemuMonitorRemoveNetdev(qemuMonitor *mon,