Signed-off-by: Tim Wiederhake <twied...@redhat.com>
---
 src/conf/domain_conf.c | 30 ++++++++++++++++++++++++++----
 src/conf/domain_conf.h |  2 +-
 2 files changed, 27 insertions(+), 5 deletions(-)

diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c
index 152b4b8813..554efe0aea 100644
--- a/src/conf/domain_conf.c
+++ b/src/conf/domain_conf.c
@@ -2468,7 +2468,16 @@ virDomainActualNetDefFree(virDomainActualNetDef *def)
     case VIR_DOMAIN_NET_TYPE_HOSTDEV:
         virDomainHostdevDefClear(&def->data.hostdev.def);
         break;
-    default:
+    case VIR_DOMAIN_NET_TYPE_USER:
+    case VIR_DOMAIN_NET_TYPE_ETHERNET:
+    case VIR_DOMAIN_NET_TYPE_VHOSTUSER:
+    case VIR_DOMAIN_NET_TYPE_SERVER:
+    case VIR_DOMAIN_NET_TYPE_CLIENT:
+    case VIR_DOMAIN_NET_TYPE_MCAST:
+    case VIR_DOMAIN_NET_TYPE_INTERNAL:
+    case VIR_DOMAIN_NET_TYPE_UDP:
+    case VIR_DOMAIN_NET_TYPE_VDPA:
+    case VIR_DOMAIN_NET_TYPE_LAST:
         break;
     }
 
@@ -10062,6 +10071,7 @@ virDomainActualNetDefParseXML(xmlNodePtr node,
     g_autofree char *addrtype = NULL;
     g_autofree char *trustGuestRxFilters = NULL;
     g_autofree char *macTableManager = NULL;
+    int type_value;
 
     actual = g_new0(virDomainActualNetDef, 1);
 
@@ -10073,11 +10083,12 @@ virDomainActualNetDefParseXML(xmlNodePtr node,
                        _("missing type attribute in interface's <actual> 
element"));
         goto error;
     }
-    if ((actual->type = virDomainNetTypeFromString(type)) < 0) {
+    if ((type_value = virDomainNetTypeFromString(type)) < 0) {
         virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
                        _("unknown type '%s' in interface's <actual> element"), 
type);
         goto error;
     }
+    actual->type = type_value;
     if (actual->type != VIR_DOMAIN_NET_TYPE_BRIDGE &&
         actual->type != VIR_DOMAIN_NET_TYPE_DIRECT &&
         actual->type != VIR_DOMAIN_NET_TYPE_HOSTDEV &&
@@ -30114,9 +30125,20 @@ virDomainNetGetActualVirtPortProfile(const 
virDomainNetDef *iface)
         case VIR_DOMAIN_NET_TYPE_BRIDGE:
         case VIR_DOMAIN_NET_TYPE_HOSTDEV:
             return iface->data.network.actual->virtPortProfile;
-        default:
-            return NULL;
+        case VIR_DOMAIN_NET_TYPE_USER:
+        case VIR_DOMAIN_NET_TYPE_ETHERNET:
+        case VIR_DOMAIN_NET_TYPE_VHOSTUSER:
+        case VIR_DOMAIN_NET_TYPE_SERVER:
+        case VIR_DOMAIN_NET_TYPE_CLIENT:
+        case VIR_DOMAIN_NET_TYPE_MCAST:
+        case VIR_DOMAIN_NET_TYPE_NETWORK:
+        case VIR_DOMAIN_NET_TYPE_INTERNAL:
+        case VIR_DOMAIN_NET_TYPE_UDP:
+        case VIR_DOMAIN_NET_TYPE_VDPA:
+        case VIR_DOMAIN_NET_TYPE_LAST:
+            break;
         }
+        return NULL;
     case VIR_DOMAIN_NET_TYPE_USER:
     case VIR_DOMAIN_NET_TYPE_ETHERNET:
     case VIR_DOMAIN_NET_TYPE_VHOSTUSER:
diff --git a/src/conf/domain_conf.h b/src/conf/domain_conf.h
index 336b76aa5c..cb21ee7872 100644
--- a/src/conf/domain_conf.h
+++ b/src/conf/domain_conf.h
@@ -990,7 +990,7 @@ typedef enum {
  * different versions of libvirt may read the same data file.
  */
 struct _virDomainActualNetDef {
-    int type; /* enum virDomainNetType */
+    virDomainNetType type;
     union {
         struct {
             char *brname;
-- 
2.26.3

Reply via email to