1
0
mirror of https://gitlab.com/libvirt/libvirt.git synced 2025-03-07 17:28:15 +00:00

bridge_driver: Introduce a helper for virNetworkObjSetMacMap()

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>
This commit is contained in:
Michal Privoznik 2022-08-09 13:42:32 +02:00
parent 107dfcea34
commit 2efd0dd9c3

View File

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