}
+int
+virNWFilterObjNumOfNWFilters(virNWFilterObjListPtr nwfilters,
+ virConnectPtr conn,
+ virNWFilterObjListFilter aclfilter)
+{
+ size_t i;
+ int nfilters = 0;
+
+ for (i = 0; i < nwfilters->count; i++) {
+ virNWFilterObjPtr obj = nwfilters->objs[i];
+ virNWFilterObjLock(obj);
+ if (!aclfilter || aclfilter(conn, obj->def))
+ nfilters++;
+ virNWFilterObjUnlock(obj);
+ }
+
+ return nfilters;
+}
+
+
static virNWFilterObjPtr
virNWFilterObjLoadConfig(virNWFilterObjListPtr nwfilters,
const char *configDir,
int
virNWFilterObjTestUnassignDef(virNWFilterObjPtr nwfilter);
+typedef bool
+(*virNWFilterObjListFilter)(virConnectPtr conn,
+ virNWFilterDefPtr def);
+
+int
+virNWFilterObjNumOfNWFilters(virNWFilterObjListPtr nwfilters,
+ virConnectPtr conn,
+ virNWFilterObjListFilter aclfilter);
+
int
virNWFilterObjLoadAllConfigs(virNWFilterObjListPtr nwfilters,
const char *configDir);
virNWFilterObjListFree;
virNWFilterObjLoadAllConfigs;
virNWFilterObjLock;
+virNWFilterObjNumOfNWFilters;
virNWFilterObjRemove;
virNWFilterObjTestUnassignDef;
virNWFilterObjUnlock;
static int
nwfilterConnectNumOfNWFilters(virConnectPtr conn)
{
- size_t i;
- int n;
-
if (virConnectNumOfNWFiltersEnsureACL(conn) < 0)
return -1;
- n = 0;
- for (i = 0; i < driver->nwfilters.count; i++) {
- virNWFilterObjPtr obj = driver->nwfilters.objs[i];
- virNWFilterObjLock(obj);
- if (virConnectNumOfNWFiltersCheckACL(conn, obj->def))
- n++;
- virNWFilterObjUnlock(obj);
- }
-
- return n;
+ return virNWFilterObjNumOfNWFilters(&driver->nwfilters, conn,
+ virConnectNumOfNWFiltersCheckACL);
}