]> git.ipfire.org Git - thirdparty/libvirt.git/commitdiff
bridge_driver: Introduce a helper for virNetworkObjSetMacMap()
authorMichal Privoznik <mprivozn@redhat.com>
Tue, 9 Aug 2022 11:42:32 +0000 (13:42 +0200)
committerMichal Privoznik <mprivozn@redhat.com>
Tue, 9 Aug 2022 15:35:14 +0000 (17:35 +0200)
Currently, whenever virNetworkObjSetMacMap() is called the same
pattern is used:

1) call virMacMapFileName() to generate a filename,
2) pass this filename to virMacMapNew(), and finally
3) pass retval from previous step to virNetworkObjSetMacMap().

Move this code into a helper (networkSetMacMap()) and replace
both pattern occurrences with its call.

Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
src/network/bridge_driver.c

index 024487b359cd71529886e75bc9ab0ab0d9f5bd98..7098054f77c2348f3485ce8cd7ef7dc9cd1359f4 100644 (file)
@@ -443,6 +443,24 @@ networkUpdatePort(virNetworkPortDef *port,
     return false;
 }
 
+static int
+networkSetMacMap(virNetworkDriverState *driver,
+                 virNetworkObj *obj)
+{
+    virNetworkDef *def = virNetworkObjGetDef(obj);
+    g_autoptr(virMacMap) macmap = NULL;
+    g_autofree char *macMapFile = NULL;
+
+    if (!(macMapFile = virMacMapFileName(driver->dnsmasqStateDir,
+                                         def->bridge)))
+        return -1;
+    if (!(macmap = virMacMapNew(macMapFile)))
+        return -1;
+
+    virNetworkObjSetMacMap(obj, &macmap);
+    return 0;
+}
+
 static int
 networkUpdateState(virNetworkObj *obj,
                    void *opaque)
@@ -450,8 +468,6 @@ networkUpdateState(virNetworkObj *obj,
     virNetworkDef *def;
     virNetworkDriverState *driver = opaque;
     g_autoptr(dnsmasqCaps) dnsmasq_caps = networkGetDnsmasqCaps(driver);
-    g_autoptr(virMacMap) macmap = NULL;
-    g_autofree char *macMapFile = NULL;
     VIR_LOCK_GUARD lock = virObjectLockGuard(obj);
 
     if (!virNetworkObjIsActive(obj))
@@ -468,15 +484,9 @@ networkUpdateState(virNetworkObj *obj,
         if (!(def->bridge && virNetDevExists(def->bridge) == 1))
             virNetworkObjSetActive(obj, false);
 
-        if (!(macMapFile = virMacMapFileName(driver->dnsmasqStateDir,
-                                             def->bridge)))
-            return -1;
-
-        if (!(macmap = virMacMapNew(macMapFile)))
+        if (networkSetMacMap(driver, obj) < 0)
             return -1;
 
-        virNetworkObjSetMacMap(obj, &macmap);
-
         break;
 
     case VIR_NETWORK_FORWARD_BRIDGE:
@@ -1938,8 +1948,6 @@ networkStartNetworkVirtual(virNetworkDriverState *driver,
     virErrorPtr save_err = NULL;
     virNetworkIPDef *ipdef;
     virNetDevIPRoute *routedef;
-    g_autoptr(virMacMap) macmap = NULL;
-    g_autofree char *macMapFile = NULL;
     bool dnsmasqStarted = false;
     bool devOnline = false;
     bool firewalRulesAdded = false;
@@ -1966,13 +1974,9 @@ networkStartNetworkVirtual(virNetworkDriverState *driver,
     if (virNetDevBridgeCreate(def->bridge, &def->mac) < 0)
         return -1;
 
-    if (!(macMapFile = virMacMapFileName(driver->dnsmasqStateDir,
-                                         def->bridge)) ||
-        !(macmap = virMacMapNew(macMapFile)))
+    if (networkSetMacMap(driver, obj) < 0)
         goto error;
 
-    virNetworkObjSetMacMap(obj, &macmap);
-
     /* Set bridge options */
 
     if (def->mtu && virNetDevSetMTU(def->bridge, def->mtu) < 0)