mirror of
https://github.com/libvirt/libvirt.git
synced 2025-02-25 18:55:26 -06:00
net: Mark network persistent when assigning persistent definition
When assigning the new persistent definition for a transient network (thus making it persistent) the network needs to be marked persistent before actually atempting to assign the definition.
This commit is contained in:
parent
fa16957ccd
commit
0211fd6e04
@ -2822,7 +2822,7 @@ cleanup:
|
|||||||
|
|
||||||
static virNetworkPtr networkDefine(virConnectPtr conn, const char *xml) {
|
static virNetworkPtr networkDefine(virConnectPtr conn, const char *xml) {
|
||||||
struct network_driver *driver = conn->networkPrivateData;
|
struct network_driver *driver = conn->networkPrivateData;
|
||||||
virNetworkDefPtr def;
|
virNetworkDefPtr def = NULL;
|
||||||
bool freeDef = true;
|
bool freeDef = true;
|
||||||
virNetworkObjPtr network = NULL;
|
virNetworkObjPtr network = NULL;
|
||||||
virNetworkPtr ret = NULL;
|
virNetworkPtr ret = NULL;
|
||||||
@ -2835,11 +2835,17 @@ static virNetworkPtr networkDefine(virConnectPtr conn, const char *xml) {
|
|||||||
if (networkValidate(driver, def, false) < 0)
|
if (networkValidate(driver, def, false) < 0)
|
||||||
goto cleanup;
|
goto cleanup;
|
||||||
|
|
||||||
if (!(network = virNetworkAssignDef(&driver->networks, def, false)))
|
if ((network = virNetworkFindByName(&driver->networks, def->name))) {
|
||||||
goto cleanup;
|
network->persistent = 1;
|
||||||
freeDef = false;
|
if (virNetworkObjAssignDef(network, def, false) < 0)
|
||||||
|
goto cleanup;
|
||||||
|
} else {
|
||||||
|
if (!(network = virNetworkAssignDef(&driver->networks, def, false)))
|
||||||
|
goto cleanup;
|
||||||
|
}
|
||||||
|
|
||||||
network->persistent = 1;
|
/* def was asigned */
|
||||||
|
freeDef = false;
|
||||||
|
|
||||||
if (virNetworkSaveConfig(driver->networkConfigDir, def) < 0) {
|
if (virNetworkSaveConfig(driver->networkConfigDir, def) < 0) {
|
||||||
virNetworkRemoveInactive(&driver->networks, network);
|
virNetworkRemoveInactive(&driver->networks, network);
|
||||||
|
Loading…
Reference in New Issue
Block a user