VIR_LOG_INIT("conf.virnwfilterobj");
+struct _virNWFilterObj {
+ virMutex lock;
-void
+ bool wantRemoved;
+
+ virNWFilterDefPtr def;
+ virNWFilterDefPtr newDef;
+};
+
+
+virNWFilterDefPtr
+virNWFilterObjGetDef(virNWFilterObjPtr obj)
+{
+ return obj->def;
+}
+
+
+virNWFilterDefPtr
+virNWFilterObjGetNewDef(virNWFilterObjPtr obj)
+{
+ return obj->newDef;
+}
+
+
+bool
+virNWFilterObjWantRemoved(virNWFilterObjPtr obj)
+{
+ return obj->wantRemoved;
+}
+
+
+static void
virNWFilterObjFree(virNWFilterObjPtr obj)
{
if (!obj)
typedef struct _virNWFilterObj virNWFilterObj;
typedef virNWFilterObj *virNWFilterObjPtr;
-struct _virNWFilterObj {
- virMutex lock;
-
- bool wantRemoved;
-
- virNWFilterDefPtr def;
- virNWFilterDefPtr newDef;
-};
-
-
typedef struct _virNWFilterObjList virNWFilterObjList;
typedef virNWFilterObjList *virNWFilterObjListPtr;
struct _virNWFilterObjList {
bool watchingFirewallD;
};
+virNWFilterDefPtr
+virNWFilterObjGetDef(virNWFilterObjPtr obj);
+
+virNWFilterDefPtr
+virNWFilterObjGetNewDef(virNWFilterObjPtr obj);
+
+bool
+virNWFilterObjWantRemoved(virNWFilterObjPtr obj);
+
void
virNWFilterObjListFree(virNWFilterObjListPtr nwfilters);
virNWFilterObjRemove(virNWFilterObjListPtr nwfilters,
virNWFilterObjPtr obj);
-void
-virNWFilterObjFree(virNWFilterObjPtr obj);
-
virNWFilterObjPtr
virNWFilterObjFindByUUID(virNWFilterObjListPtr nwfilters,
const unsigned char *uuid);
virNWFilterObjAssignDef;
virNWFilterObjFindByName;
virNWFilterObjFindByUUID;
+virNWFilterObjGetDef;
virNWFilterObjGetNames;
+virNWFilterObjGetNewDef;
virNWFilterObjListExport;
virNWFilterObjListFree;
virNWFilterObjLoadAllConfigs;
virNWFilterObjRemove;
virNWFilterObjTestUnassignDef;
virNWFilterObjUnlock;
+virNWFilterObjWantRemoved;
# conf/virsecretobj.h
"%s", _("no nwfilter with matching uuid"));
goto cleanup;
}
- def = obj->def;
+ def = virNWFilterObjGetDef(obj);
if (virNWFilterLookupByUUIDEnsureACL(conn, def) < 0)
goto cleanup;
_("no nwfilter with matching name '%s'"), name);
goto cleanup;
}
- def = obj->def;
+ def = virNWFilterObjGetDef(obj);
if (virNWFilterLookupByNameEnsureACL(conn, def) < 0)
goto cleanup;
if (!(obj = virNWFilterObjAssignDef(&driver->nwfilters, def)))
goto cleanup;
def = NULL;
- objdef = obj->def;
+ objdef = virNWFilterObjGetDef(obj);
if (virNWFilterSaveDef(driver->configDir, objdef) < 0) {
virNWFilterObjRemove(&driver->nwfilters, obj);
nwfilterUndefine(virNWFilterPtr nwfilter)
{
virNWFilterObjPtr obj;
+ virNWFilterDefPtr def;
int ret = -1;
nwfilterDriverLock();
"%s", _("no nwfilter with matching uuid"));
goto cleanup;
}
+ def = virNWFilterObjGetDef(obj);
- if (virNWFilterUndefineEnsureACL(nwfilter->conn, obj->def) < 0)
+ if (virNWFilterUndefineEnsureACL(nwfilter->conn, def) < 0)
goto cleanup;
if (virNWFilterObjTestUnassignDef(obj) < 0) {
goto cleanup;
}
- if (virNWFilterDeleteDef(driver->configDir, obj->def) < 0)
+ if (virNWFilterDeleteDef(driver->configDir, def) < 0)
goto cleanup;
virNWFilterObjRemove(&driver->nwfilters, obj);
unsigned int flags)
{
virNWFilterObjPtr obj;
+ virNWFilterDefPtr def;
char *ret = NULL;
virCheckFlags(0, NULL);
"%s", _("no nwfilter with matching uuid"));
goto cleanup;
}
+ def = virNWFilterObjGetDef(obj);
- if (virNWFilterGetXMLDescEnsureACL(nwfilter->conn, obj->def) < 0)
+ if (virNWFilterGetXMLDescEnsureACL(nwfilter->conn, def) < 0)
goto cleanup;
- ret = virNWFilterDefFormat(obj->def);
+ ret = virNWFilterDefFormat(def);
cleanup:
if (obj)
virNWFilterObjPtr obj;
virNWFilterHashTablePtr tmpvars = NULL;
virNWFilterDefPtr childdef;
+ virNWFilterDefPtr newChilddef;
int ret = -1;
VIR_DEBUG("Instantiating filter %s", inc->filterref);
inc->filterref);
goto cleanup;
}
- if (obj->wantRemoved) {
+ if (virNWFilterObjWantRemoved(obj)) {
virReportError(VIR_ERR_NO_NWFILTER,
_("Filter '%s' is in use."),
inc->filterref);
vars)))
goto cleanup;
- childdef = obj->def;
+ childdef = virNWFilterObjGetDef(obj);
switch (useNewFilter) {
case INSTANTIATE_FOLLOW_NEWFILTER:
- if (obj->newDef) {
- childdef = obj->newDef;
+ newChilddef = virNWFilterObjGetNewDef(obj);
+ if (newChilddef) {
+ childdef = newChilddef;
*foundNewFilter = true;
}
break;
int rc = 0;
size_t i, j;
virNWFilterDefPtr next_filter;
+ virNWFilterDefPtr newNext_filter;
virNWFilterVarValuePtr val;
for (i = 0; i < filter->nentries; i++) {
obj = virNWFilterObjFindByName(&driver->nwfilters, inc->filterref);
if (obj) {
- if (obj->wantRemoved) {
+ if (virNWFilterObjWantRemoved(obj)) {
virReportError(VIR_ERR_NO_NWFILTER,
_("Filter '%s' is in use."),
inc->filterref);
break;
}
- next_filter = obj->def;
+ next_filter = virNWFilterObjGetDef(obj);
switch (useNewFilter) {
case INSTANTIATE_FOLLOW_NEWFILTER:
- if (obj->newDef)
- next_filter = obj->newDef;
+ newNext_filter = virNWFilterObjGetNewDef(obj);
+ if (newNext_filter)
+ next_filter = newNext_filter;
break;
case INSTANTIATE_ALWAYS:
break;
virNWFilterObjPtr obj;
virNWFilterHashTablePtr vars, vars1;
virNWFilterDefPtr filter;
+ virNWFilterDefPtr newFilter;
char vmmacaddr[VIR_MAC_STRING_BUFLEN] = {0};
char *str_macaddr = NULL;
virNWFilterVarValuePtr ipaddr;
return -1;
}
- if (obj->wantRemoved) {
+ if (virNWFilterObjWantRemoved(obj)) {
virReportError(VIR_ERR_NO_NWFILTER,
_("Filter '%s' is in use."),
filtername);
goto err_exit_vars1;
}
- filter = obj->def;
+ filter = virNWFilterObjGetDef(obj);
switch (useNewFilter) {
case INSTANTIATE_FOLLOW_NEWFILTER:
- if (obj->newDef) {
- filter = obj->newDef;
+ newFilter = virNWFilterObjGetNewDef(obj);
+ if (newFilter) {
+ filter = newFilter;
*foundNewFilter = true;
}
break;