diff --git a/src/conf/network_conf.c b/src/conf/network_conf.c index aa8d6c632c51402c2c62780a6f4b7235c6ee7b61..5b734f26221fc3ba2f9ac6e1d4e587f787bf9c50 100644 --- a/src/conf/network_conf.c +++ b/src/conf/network_conf.c @@ -3270,15 +3270,22 @@ virNetworkBridgeInUseHelper(const void *payload, const void *name ATTRIBUTE_UNUSED, const void *opaque) { - int ret = 0; + int ret; virNetworkObjPtr net = (virNetworkObjPtr) payload; const struct virNetworkBridgeInUseHelperData *data = opaque; virObjectLock(net); - if (net->def->bridge && - STREQ(net->def->bridge, data->bridge) && - !(data->skipname && STREQ(net->def->name, data->skipname))) + if (data->skipname && + ((net->def && STREQ(net->def->name, data->skipname)) || + (net->newDef && STREQ(net->newDef->name, data->skipname)))) + ret = 0; + else if ((net->def && net->def->bridge && + STREQ(net->def->bridge, data->bridge)) || + (net->newDef && net->newDef->bridge && + STREQ(net->newDef->bridge, data->bridge))) ret = 1; + else + ret = 0; virObjectUnlock(net); return ret; }