size_t i;
if (net->type == VIR_DOMAIN_NET_TYPE_USER) {
- switch (net->backend.type) {
- case VIR_DOMAIN_NET_BACKEND_DEFAULT:
- if (!virQEMUCapsGet(qemuCaps, QEMU_CAPS_NETDEV_USER)) {
- virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
- _("the '%1$s' network backend is not supported with this QEMU binary"),
- virDomainNetBackendTypeToString(net->backend.type));
- return -1;
- }
- break;
+ virDomainCapsDeviceNet netCaps = { };
- case VIR_DOMAIN_NET_BACKEND_PASST:
- if (!virQEMUCapsGet(qemuCaps, QEMU_CAPS_NETDEV_STREAM)) {
- virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
- _("the '%1$s' network backend is not supported with this QEMU binary"),
- virDomainNetBackendTypeToString(net->backend.type));
- return -1;
- }
- break;
+ virQEMUCapsFillDomainDeviceNetCaps(qemuCaps, &netCaps);
- case VIR_DOMAIN_NET_BACKEND_LAST:
- break;
+ if (!VIR_DOMAIN_CAPS_ENUM_IS_SET(netCaps.backendType,
+ net->backend.type)) {
+ virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
+ _("the '%1$s' network backend is not supported with this QEMU binary"),
+ virDomainNetBackendTypeToString(net->backend.type));
+ return -1;
}
+
if (net->guestIP.nroutes) {
virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s",
_("Invalid attempt to set network interface guest-side IP route, not supported by QEMU"));