g_autoptr(dnsmasqCaps) dnsmasq_caps = networkGetDnsmasqCaps(driver);
virMacMap *macmap;
g_autofree char *macMapFile = NULL;
- int ret = -1;
+ VIR_LOCK_GUARD lock = virObjectLockGuard(obj);
+
+ if (!virNetworkObjIsActive(obj))
+ return 0;
- virObjectLock(obj);
- if (!virNetworkObjIsActive(obj)) {
- ret = 0;
- goto cleanup;
- }
def = virNetworkObjGetDef(obj);
switch ((virNetworkForwardType) def->forward.type) {
if (!(macMapFile = virMacMapFileName(driver->dnsmasqStateDir,
def->bridge)))
- goto cleanup;
+ return -1;
if (!(macmap = virMacMapNew(macMapFile)))
- goto cleanup;
+ return -1;
virNetworkObjSetMacMap(obj, macmap);
case VIR_NETWORK_FORWARD_LAST:
default:
virReportEnumRangeError(virNetworkForwardType, def->forward.type);
- goto cleanup;
+ return -1;
}
virNetworkObjPortForEach(obj, networkUpdatePort, obj);
virNetworkObjSetDnsmasqPid(obj, dnsmasqPid);
}
- ret = 0;
- cleanup:
- virObjectUnlock(obj);
- return ret;
+ return 0;
}
networkAutostartConfig(virNetworkObj *obj,
void *opaque)
{
+ VIR_LOCK_GUARD lock = virObjectLockGuard(obj);
virNetworkDriverState *driver = opaque;
- int ret = -1;
- virObjectLock(obj);
- if (virNetworkObjIsAutostart(obj) &&
- !virNetworkObjIsActive(obj) &&
- networkStartNetwork(driver, obj) < 0)
- goto cleanup;
+ if (!virNetworkObjIsAutostart(obj))
+ return 0;
- ret = 0;
- cleanup:
- virObjectUnlock(obj);
- return ret;
+ if (virNetworkObjIsActive(obj))
+ return 0;
+
+ if (networkStartNetwork(driver, obj) >= 0)
+ return 0;
+
+ return -1;
}
networkRefreshDaemonsHelper(virNetworkObj *obj,
void *opaque)
{
- virNetworkDef *def;
+ VIR_LOCK_GUARD lock = virObjectLockGuard(obj);
virNetworkDriverState *driver = opaque;
+ virNetworkDef *def = virNetworkObjGetDef(obj);
- virObjectLock(obj);
- def = virNetworkObjGetDef(obj);
if (virNetworkObjIsActive(obj)) {
switch ((virNetworkForwardType) def->forward.type) {
case VIR_NETWORK_FORWARD_NONE:
case VIR_NETWORK_FORWARD_LAST:
default:
virReportEnumRangeError(virNetworkForwardType, def->forward.type);
- goto cleanup;
+ return 0;
}
}
- cleanup:
- virObjectUnlock(obj);
return 0;
}
networkReloadFirewallRulesHelper(virNetworkObj *obj,
void *opaque G_GNUC_UNUSED)
{
- virNetworkDef *def;
+ VIR_LOCK_GUARD lock = virObjectLockGuard(obj);
+ virNetworkDef *def = virNetworkObjGetDef(obj);
- virObjectLock(obj);
- def = virNetworkObjGetDef(obj);
if (virNetworkObjIsActive(obj)) {
switch ((virNetworkForwardType) def->forward.type) {
case VIR_NETWORK_FORWARD_NONE:
case VIR_NETWORK_FORWARD_LAST:
default:
virReportEnumRangeError(virNetworkForwardType, def->forward.type);
- goto cleanup;
+ return 0;
}
}
- cleanup:
- virObjectUnlock(obj);
return 0;
}