c8c376
From a9eea9b50f56334046fd21e0bc11fb878d4e6d07 Mon Sep 17 00:00:00 2001
c8c376
Message-Id: <a9eea9b50f56334046fd21e0bc11fb878d4e6d07@dist-git>
c8c376
From: Michal Privoznik <mprivozn@redhat.com>
c8c376
Date: Tue, 8 Nov 2016 13:42:02 +0100
c8c376
Subject: [PATCH] virDomainNetGetActualType: Return type is virDomainNetType
c8c376
c8c376
RHEL-7.3: https://bugzilla.redhat.com/show_bug.cgi?id=1366108
c8c376
RHEL-7.3.z: https://bugzilla.redhat.com/show_bug.cgi?id=1392032
c8c376
c8c376
This function for some weird reason returns integer instead of
c8c376
virDomainNetType type. It is important to return the correct type
c8c376
so that we know what values we can expect.
c8c376
c8c376
Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
c8c376
(cherry picked from commit 507032d98d390245047f69474d0671d6b0b12651)
c8c376
Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
c8c376
---
c8c376
 src/bhyve/bhyve_command.c |  2 +-
c8c376
 src/bhyve/bhyve_process.c |  2 +-
c8c376
 src/conf/domain_conf.c    |  8 ++++----
c8c376
 src/conf/domain_conf.h    |  2 +-
c8c376
 src/libxl/libxl_domain.c  |  2 +-
c8c376
 src/libxl/libxl_driver.c  |  2 +-
c8c376
 src/lxc/lxc_driver.c      |  9 +++++++--
c8c376
 src/qemu/qemu_command.c   |  2 +-
c8c376
 src/qemu/qemu_hotplug.c   |  4 ++--
c8c376
 src/qemu/qemu_process.c   | 13 ++++++++++++-
c8c376
 10 files changed, 31 insertions(+), 15 deletions(-)
c8c376
c8c376
diff --git a/src/bhyve/bhyve_command.c b/src/bhyve/bhyve_command.c
c8c376
index 9ad3f9b52..55ad95076 100644
c8c376
--- a/src/bhyve/bhyve_command.c
c8c376
+++ b/src/bhyve/bhyve_command.c
c8c376
@@ -52,7 +52,7 @@ bhyveBuildNetArgStr(const virDomainDef *def,
c8c376
     char macaddr[VIR_MAC_STRING_BUFLEN];
c8c376
     char *realifname = NULL;
c8c376
     char *brname = NULL;
c8c376
-    int actualType = virDomainNetGetActualType(net);
c8c376
+    virDomainNetType actualType = virDomainNetGetActualType(net);
c8c376
 
c8c376
     if (actualType == VIR_DOMAIN_NET_TYPE_BRIDGE) {
c8c376
         if (VIR_STRDUP(brname, virDomainNetGetActualBridgeName(net)) < 0)
c8c376
diff --git a/src/bhyve/bhyve_process.c b/src/bhyve/bhyve_process.c
c8c376
index 6db070f6b..9d8097676 100644
c8c376
--- a/src/bhyve/bhyve_process.c
c8c376
+++ b/src/bhyve/bhyve_process.c
c8c376
@@ -77,7 +77,7 @@ bhyveNetCleanup(virDomainObjPtr vm)
c8c376
 
c8c376
     for (i = 0; i < vm->def->nnets; i++) {
c8c376
         virDomainNetDefPtr net = vm->def->nets[i];
c8c376
-        int actualType = virDomainNetGetActualType(net);
c8c376
+        virDomainNetType actualType = virDomainNetGetActualType(net);
c8c376
 
c8c376
         if (actualType == VIR_DOMAIN_NET_TYPE_BRIDGE) {
c8c376
             if (net->ifname) {
c8c376
diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c
c8c376
index 23e447a4e..da3de8299 100644
c8c376
--- a/src/conf/domain_conf.c
c8c376
+++ b/src/conf/domain_conf.c
c8c376
@@ -20865,7 +20865,7 @@ virDomainActualNetDefContentsFormat(virBufferPtr buf,
c8c376
                                     bool inSubelement,
c8c376
                                     unsigned int flags)
c8c376
 {
c8c376
-    int actualType = virDomainNetGetActualType(def);
c8c376
+    virDomainNetType actualType = virDomainNetGetActualType(def);
c8c376
 
c8c376
     if (actualType == VIR_DOMAIN_NET_TYPE_HOSTDEV) {
c8c376
         if (virDomainHostdevDefFormatSubsys(buf, virDomainNetGetActualHostdev(def),
c8c376
@@ -20945,7 +20945,7 @@ virDomainActualNetDefFormat(virBufferPtr buf,
c8c376
                             virDomainNetDefPtr def,
c8c376
                             unsigned int flags)
c8c376
 {
c8c376
-    unsigned int type;
c8c376
+    virDomainNetType type;
c8c376
     const char *typeStr;
c8c376
 
c8c376
     if (!def)
c8c376
@@ -21100,7 +21100,7 @@ virDomainNetDefFormat(virBufferPtr buf,
c8c376
                       char *prefix,
c8c376
                       unsigned int flags)
c8c376
 {
c8c376
-    unsigned int actualType = virDomainNetGetActualType(def);
c8c376
+    virDomainNetType actualType = virDomainNetGetActualType(def);
c8c376
     bool publicActual = false;
c8c376
     const char *typeStr;
c8c376
     virDomainHostdevDefPtr hostdef = NULL;
c8c376
@@ -24804,7 +24804,7 @@ virDomainStateReasonFromString(virDomainState state, const char *reason)
c8c376
  * otherwise return the value from the NetDef.
c8c376
  */
c8c376
 
c8c376
-int
c8c376
+virDomainNetType
c8c376
 virDomainNetGetActualType(virDomainNetDefPtr iface)
c8c376
 {
c8c376
     if (iface->type != VIR_DOMAIN_NET_TYPE_NETWORK)
c8c376
diff --git a/src/conf/domain_conf.h b/src/conf/domain_conf.h
c8c376
index b8944cb79..84cda68b6 100644
c8c376
--- a/src/conf/domain_conf.h
c8c376
+++ b/src/conf/domain_conf.h
c8c376
@@ -2791,7 +2791,7 @@ int virDomainGraphicsListenAppendSocket(virDomainGraphicsDefPtr def,
c8c376
                                         const char *socket)
c8c376
             ATTRIBUTE_NONNULL(1);
c8c376
 
c8c376
-int virDomainNetGetActualType(virDomainNetDefPtr iface);
c8c376
+virDomainNetType virDomainNetGetActualType(virDomainNetDefPtr iface);
c8c376
 const char *virDomainNetGetActualBridgeName(virDomainNetDefPtr iface);
c8c376
 int virDomainNetGetActualBridgeMACTableManager(virDomainNetDefPtr iface);
c8c376
 const char *virDomainNetGetActualDirectDev(virDomainNetDefPtr iface);
c8c376
diff --git a/src/libxl/libxl_domain.c b/src/libxl/libxl_domain.c
c8c376
index ca37a3375..3cd34bee2 100644
c8c376
--- a/src/libxl/libxl_domain.c
c8c376
+++ b/src/libxl/libxl_domain.c
c8c376
@@ -916,7 +916,7 @@ libxlNetworkPrepareDevices(virDomainDefPtr def)
c8c376
 
c8c376
     for (i = 0; i < def->nnets; i++) {
c8c376
         virDomainNetDefPtr net = def->nets[i];
c8c376
-        int actualType;
c8c376
+        virDomainNetType actualType;
c8c376
 
c8c376
         /* If appropriate, grab a physical device from the configured
c8c376
          * network's pool of devices, or resolve bridge device name
c8c376
diff --git a/src/libxl/libxl_driver.c b/src/libxl/libxl_driver.c
c8c376
index 711e8013b..0224e68f4 100644
c8c376
--- a/src/libxl/libxl_driver.c
c8c376
+++ b/src/libxl/libxl_driver.c
c8c376
@@ -3155,7 +3155,7 @@ libxlDomainAttachNetDevice(libxlDriverPrivatePtr driver,
c8c376
                            virDomainNetDefPtr net)
c8c376
 {
c8c376
     libxlDriverConfigPtr cfg = libxlDriverConfigGet(driver);
c8c376
-    int actualType;
c8c376
+    virDomainNetType actualType;
c8c376
     libxl_device_nic nic;
c8c376
     int ret = -1;
c8c376
     char mac[VIR_MAC_STRING_BUFLEN];
c8c376
diff --git a/src/lxc/lxc_driver.c b/src/lxc/lxc_driver.c
c8c376
index d47f21589..30e3314cd 100644
c8c376
--- a/src/lxc/lxc_driver.c
c8c376
+++ b/src/lxc/lxc_driver.c
c8c376
@@ -3945,7 +3945,7 @@ lxcDomainAttachDeviceNetLive(virConnectPtr conn,
c8c376
 {
c8c376
     virLXCDomainObjPrivatePtr priv = vm->privateData;
c8c376
     int ret = -1;
c8c376
-    int actualType;
c8c376
+    virDomainNetType actualType;
c8c376
     virNetDevBandwidthPtr actualBandwidth;
c8c376
     char *veth = NULL;
c8c376
 
c8c376
@@ -4032,6 +4032,10 @@ lxcDomainAttachDeviceNetLive(virConnectPtr conn,
c8c376
         case VIR_DOMAIN_NET_TYPE_DIRECT:
c8c376
             ignore_value(virNetDevMacVLanDelete(veth));
c8c376
             break;
c8c376
+
c8c376
+        default:
c8c376
+            /* no-op */
c8c376
+            break;
c8c376
         }
c8c376
     }
c8c376
 
c8c376
@@ -4432,7 +4436,8 @@ static int
c8c376
 lxcDomainDetachDeviceNetLive(virDomainObjPtr vm,
c8c376
                              virDomainDeviceDefPtr dev)
c8c376
 {
c8c376
-    int detachidx, actualType, ret = -1;
c8c376
+    int detachidx, ret = -1;
c8c376
+    virDomainNetType actualType;
c8c376
     virDomainNetDefPtr detach = NULL;
c8c376
     virNetDevVPortProfilePtr vport = NULL;
c8c376
 
c8c376
diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c
c8c376
index 43e1a9350..8d002ffb2 100644
c8c376
--- a/src/qemu/qemu_command.c
c8c376
+++ b/src/qemu/qemu_command.c
c8c376
@@ -7995,7 +7995,7 @@ qemuBuildInterfaceCommandLine(virCommandPtr cmd,
c8c376
     size_t vhostfdSize = 0;
c8c376
     char **tapfdName = NULL;
c8c376
     char **vhostfdName = NULL;
c8c376
-    int actualType = virDomainNetGetActualType(net);
c8c376
+    virDomainNetType actualType = virDomainNetGetActualType(net);
c8c376
     virQEMUDriverConfigPtr cfg = NULL;
c8c376
     virNetDevBandwidthPtr actualBandwidth;
c8c376
     size_t i;
c8c376
diff --git a/src/qemu/qemu_hotplug.c b/src/qemu/qemu_hotplug.c
c8c376
index df3764ffe..4a3e97b58 100644
c8c376
--- a/src/qemu/qemu_hotplug.c
c8c376
+++ b/src/qemu/qemu_hotplug.c
c8c376
@@ -898,7 +898,7 @@ qemuDomainAttachNetDevice(virQEMUDriverPtr driver,
c8c376
     int vlan;
c8c376
     bool releaseaddr = false;
c8c376
     bool iface_connected = false;
c8c376
-    int actualType;
c8c376
+    virDomainNetType actualType;
c8c376
     virNetDevBandwidthPtr actualBandwidth;
c8c376
     virQEMUDriverConfigPtr cfg = virQEMUDriverGetConfig(driver);
c8c376
     size_t i;
c8c376
@@ -2405,7 +2405,7 @@ qemuDomainChangeNet(virQEMUDriverPtr driver,
c8c376
     virDomainNetDefPtr newdev = dev->data.net;
c8c376
     virDomainNetDefPtr *devslot = NULL;
c8c376
     virDomainNetDefPtr olddev;
c8c376
-    int oldType, newType;
c8c376
+    virDomainNetType oldType, newType;
c8c376
     bool needReconnect = false;
c8c376
     bool needBridgeChange = false;
c8c376
     bool needFilterChange = false;
c8c376
diff --git a/src/qemu/qemu_process.c b/src/qemu/qemu_process.c
c8c376
index e13db3877..3a21b0b90 100644
c8c376
--- a/src/qemu/qemu_process.c
c8c376
+++ b/src/qemu/qemu_process.c
c8c376
@@ -4571,7 +4571,7 @@ qemuProcessNetworkPrepareDevices(virDomainDefPtr def)
c8c376
 
c8c376
     for (i = 0; i < def->nnets; i++) {
c8c376
         virDomainNetDefPtr net = def->nets[i];
c8c376
-        int actualType;
c8c376
+        virDomainNetType actualType;
c8c376
 
c8c376
         /* If appropriate, grab a physical device from the configured
c8c376
          * network's pool of devices, or resolve bridge device name
c8c376
@@ -5902,6 +5902,17 @@ void qemuProcessStop(virQEMUDriverPtr driver,
c8c376
                 ignore_value(virNetDevTapDelete(net->ifname, net->backend.tap));
c8c376
 #endif
c8c376
             break;
c8c376
+        case VIR_DOMAIN_NET_TYPE_USER:
c8c376
+        case VIR_DOMAIN_NET_TYPE_VHOSTUSER:
c8c376
+        case VIR_DOMAIN_NET_TYPE_SERVER:
c8c376
+        case VIR_DOMAIN_NET_TYPE_CLIENT:
c8c376
+        case VIR_DOMAIN_NET_TYPE_MCAST:
c8c376
+        case VIR_DOMAIN_NET_TYPE_INTERNAL:
c8c376
+        case VIR_DOMAIN_NET_TYPE_HOSTDEV:
c8c376
+        case VIR_DOMAIN_NET_TYPE_UDP:
c8c376
+        case VIR_DOMAIN_NET_TYPE_LAST:
c8c376
+            /* No special cleanup procedure for these types. */
c8c376
+            break;
c8c376
         }
c8c376
         /* release the physical device (or any other resources used by
c8c376
          * this interface in the network driver
c8c376
-- 
c8c376
2.11.0
c8c376