nwfilter: Make _virNWFilterObjPtr private

Move the structure to virnwfilterobj.c and create necessary accessor API's
for the various fields.

Also make virNWFilterObjFree static since there's no external callers.

Signed-off-by: John Ferlan <jferlan@redhat.com>
This commit is contained in:
John Ferlan 2017-04-18 12:02:12 -04:00
parent 8b6cdb2faa
commit 4b6264508f
5 changed files with 72 additions and 33 deletions

View File

@ -33,8 +33,38 @@
VIR_LOG_INIT("conf.virnwfilterobj"); 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) virNWFilterObjFree(virNWFilterObjPtr obj)
{ {
if (!obj) if (!obj)

View File

@ -26,16 +26,6 @@
typedef struct _virNWFilterObj virNWFilterObj; typedef struct _virNWFilterObj virNWFilterObj;
typedef virNWFilterObj *virNWFilterObjPtr; typedef virNWFilterObj *virNWFilterObjPtr;
struct _virNWFilterObj {
virMutex lock;
bool wantRemoved;
virNWFilterDefPtr def;
virNWFilterDefPtr newDef;
};
typedef struct _virNWFilterObjList virNWFilterObjList; typedef struct _virNWFilterObjList virNWFilterObjList;
typedef virNWFilterObjList *virNWFilterObjListPtr; typedef virNWFilterObjList *virNWFilterObjListPtr;
struct _virNWFilterObjList { struct _virNWFilterObjList {
@ -56,6 +46,15 @@ struct _virNWFilterDriverState {
bool watchingFirewallD; bool watchingFirewallD;
}; };
virNWFilterDefPtr
virNWFilterObjGetDef(virNWFilterObjPtr obj);
virNWFilterDefPtr
virNWFilterObjGetNewDef(virNWFilterObjPtr obj);
bool
virNWFilterObjWantRemoved(virNWFilterObjPtr obj);
void void
virNWFilterObjListFree(virNWFilterObjListPtr nwfilters); virNWFilterObjListFree(virNWFilterObjListPtr nwfilters);
@ -63,9 +62,6 @@ void
virNWFilterObjRemove(virNWFilterObjListPtr nwfilters, virNWFilterObjRemove(virNWFilterObjListPtr nwfilters,
virNWFilterObjPtr obj); virNWFilterObjPtr obj);
void
virNWFilterObjFree(virNWFilterObjPtr obj);
virNWFilterObjPtr virNWFilterObjPtr
virNWFilterObjFindByUUID(virNWFilterObjListPtr nwfilters, virNWFilterObjFindByUUID(virNWFilterObjListPtr nwfilters,
const unsigned char *uuid); const unsigned char *uuid);

View File

@ -965,7 +965,9 @@ virNodeDeviceObjUnlock;
virNWFilterObjAssignDef; virNWFilterObjAssignDef;
virNWFilterObjFindByName; virNWFilterObjFindByName;
virNWFilterObjFindByUUID; virNWFilterObjFindByUUID;
virNWFilterObjGetDef;
virNWFilterObjGetNames; virNWFilterObjGetNames;
virNWFilterObjGetNewDef;
virNWFilterObjListExport; virNWFilterObjListExport;
virNWFilterObjListFree; virNWFilterObjListFree;
virNWFilterObjLoadAllConfigs; virNWFilterObjLoadAllConfigs;
@ -974,6 +976,7 @@ virNWFilterObjNumOfNWFilters;
virNWFilterObjRemove; virNWFilterObjRemove;
virNWFilterObjTestUnassignDef; virNWFilterObjTestUnassignDef;
virNWFilterObjUnlock; virNWFilterObjUnlock;
virNWFilterObjWantRemoved;
# conf/virsecretobj.h # conf/virsecretobj.h

View File

@ -370,7 +370,7 @@ nwfilterLookupByUUID(virConnectPtr conn,
"%s", _("no nwfilter with matching uuid")); "%s", _("no nwfilter with matching uuid"));
goto cleanup; goto cleanup;
} }
def = obj->def; def = virNWFilterObjGetDef(obj);
if (virNWFilterLookupByUUIDEnsureACL(conn, def) < 0) if (virNWFilterLookupByUUIDEnsureACL(conn, def) < 0)
goto cleanup; goto cleanup;
@ -401,7 +401,7 @@ nwfilterLookupByName(virConnectPtr conn,
_("no nwfilter with matching name '%s'"), name); _("no nwfilter with matching name '%s'"), name);
goto cleanup; goto cleanup;
} }
def = obj->def; def = virNWFilterObjGetDef(obj);
if (virNWFilterLookupByNameEnsureACL(conn, def) < 0) if (virNWFilterLookupByNameEnsureACL(conn, def) < 0)
goto cleanup; goto cleanup;
@ -493,7 +493,7 @@ nwfilterDefineXML(virConnectPtr conn,
if (!(obj = virNWFilterObjAssignDef(&driver->nwfilters, def))) if (!(obj = virNWFilterObjAssignDef(&driver->nwfilters, def)))
goto cleanup; goto cleanup;
def = NULL; def = NULL;
objdef = obj->def; objdef = virNWFilterObjGetDef(obj);
if (virNWFilterSaveDef(driver->configDir, objdef) < 0) { if (virNWFilterSaveDef(driver->configDir, objdef) < 0) {
virNWFilterObjRemove(&driver->nwfilters, obj); virNWFilterObjRemove(&driver->nwfilters, obj);
@ -518,6 +518,7 @@ static int
nwfilterUndefine(virNWFilterPtr nwfilter) nwfilterUndefine(virNWFilterPtr nwfilter)
{ {
virNWFilterObjPtr obj; virNWFilterObjPtr obj;
virNWFilterDefPtr def;
int ret = -1; int ret = -1;
nwfilterDriverLock(); nwfilterDriverLock();
@ -530,8 +531,9 @@ nwfilterUndefine(virNWFilterPtr nwfilter)
"%s", _("no nwfilter with matching uuid")); "%s", _("no nwfilter with matching uuid"));
goto cleanup; goto cleanup;
} }
def = virNWFilterObjGetDef(obj);
if (virNWFilterUndefineEnsureACL(nwfilter->conn, obj->def) < 0) if (virNWFilterUndefineEnsureACL(nwfilter->conn, def) < 0)
goto cleanup; goto cleanup;
if (virNWFilterObjTestUnassignDef(obj) < 0) { if (virNWFilterObjTestUnassignDef(obj) < 0) {
@ -541,7 +543,7 @@ nwfilterUndefine(virNWFilterPtr nwfilter)
goto cleanup; goto cleanup;
} }
if (virNWFilterDeleteDef(driver->configDir, obj->def) < 0) if (virNWFilterDeleteDef(driver->configDir, def) < 0)
goto cleanup; goto cleanup;
virNWFilterObjRemove(&driver->nwfilters, obj); virNWFilterObjRemove(&driver->nwfilters, obj);
@ -564,6 +566,7 @@ nwfilterGetXMLDesc(virNWFilterPtr nwfilter,
unsigned int flags) unsigned int flags)
{ {
virNWFilterObjPtr obj; virNWFilterObjPtr obj;
virNWFilterDefPtr def;
char *ret = NULL; char *ret = NULL;
virCheckFlags(0, NULL); virCheckFlags(0, NULL);
@ -577,11 +580,12 @@ nwfilterGetXMLDesc(virNWFilterPtr nwfilter,
"%s", _("no nwfilter with matching uuid")); "%s", _("no nwfilter with matching uuid"));
goto cleanup; goto cleanup;
} }
def = virNWFilterObjGetDef(obj);
if (virNWFilterGetXMLDescEnsureACL(nwfilter->conn, obj->def) < 0) if (virNWFilterGetXMLDescEnsureACL(nwfilter->conn, def) < 0)
goto cleanup; goto cleanup;
ret = virNWFilterDefFormat(obj->def); ret = virNWFilterDefFormat(def);
cleanup: cleanup:
if (obj) if (obj)

View File

@ -379,6 +379,7 @@ virNWFilterIncludeDefToRuleInst(virNWFilterDriverStatePtr driver,
virNWFilterObjPtr obj; virNWFilterObjPtr obj;
virNWFilterHashTablePtr tmpvars = NULL; virNWFilterHashTablePtr tmpvars = NULL;
virNWFilterDefPtr childdef; virNWFilterDefPtr childdef;
virNWFilterDefPtr newChilddef;
int ret = -1; int ret = -1;
VIR_DEBUG("Instantiating filter %s", inc->filterref); VIR_DEBUG("Instantiating filter %s", inc->filterref);
@ -390,7 +391,7 @@ virNWFilterIncludeDefToRuleInst(virNWFilterDriverStatePtr driver,
inc->filterref); inc->filterref);
goto cleanup; goto cleanup;
} }
if (obj->wantRemoved) { if (virNWFilterObjWantRemoved(obj)) {
virReportError(VIR_ERR_NO_NWFILTER, virReportError(VIR_ERR_NO_NWFILTER,
_("Filter '%s' is in use."), _("Filter '%s' is in use."),
inc->filterref); inc->filterref);
@ -402,12 +403,13 @@ virNWFilterIncludeDefToRuleInst(virNWFilterDriverStatePtr driver,
vars))) vars)))
goto cleanup; goto cleanup;
childdef = obj->def; childdef = virNWFilterObjGetDef(obj);
switch (useNewFilter) { switch (useNewFilter) {
case INSTANTIATE_FOLLOW_NEWFILTER: case INSTANTIATE_FOLLOW_NEWFILTER:
if (obj->newDef) { newChilddef = virNWFilterObjGetNewDef(obj);
childdef = obj->newDef; if (newChilddef) {
childdef = newChilddef;
*foundNewFilter = true; *foundNewFilter = true;
} }
break; break;
@ -505,6 +507,7 @@ virNWFilterDetermineMissingVarsRec(virNWFilterDefPtr filter,
int rc = 0; int rc = 0;
size_t i, j; size_t i, j;
virNWFilterDefPtr next_filter; virNWFilterDefPtr next_filter;
virNWFilterDefPtr newNext_filter;
virNWFilterVarValuePtr val; virNWFilterVarValuePtr val;
for (i = 0; i < filter->nentries; i++) { for (i = 0; i < filter->nentries; i++) {
@ -545,7 +548,7 @@ virNWFilterDetermineMissingVarsRec(virNWFilterDefPtr filter,
obj = virNWFilterObjFindByName(&driver->nwfilters, inc->filterref); obj = virNWFilterObjFindByName(&driver->nwfilters, inc->filterref);
if (obj) { if (obj) {
if (obj->wantRemoved) { if (virNWFilterObjWantRemoved(obj)) {
virReportError(VIR_ERR_NO_NWFILTER, virReportError(VIR_ERR_NO_NWFILTER,
_("Filter '%s' is in use."), _("Filter '%s' is in use."),
inc->filterref); inc->filterref);
@ -564,12 +567,13 @@ virNWFilterDetermineMissingVarsRec(virNWFilterDefPtr filter,
break; break;
} }
next_filter = obj->def; next_filter = virNWFilterObjGetDef(obj);
switch (useNewFilter) { switch (useNewFilter) {
case INSTANTIATE_FOLLOW_NEWFILTER: case INSTANTIATE_FOLLOW_NEWFILTER:
if (obj->newDef) newNext_filter = virNWFilterObjGetNewDef(obj);
next_filter = obj->newDef; if (newNext_filter)
next_filter = newNext_filter;
break; break;
case INSTANTIATE_ALWAYS: case INSTANTIATE_ALWAYS:
break; break;
@ -790,6 +794,7 @@ __virNWFilterInstantiateFilter(virNWFilterDriverStatePtr driver,
virNWFilterObjPtr obj; virNWFilterObjPtr obj;
virNWFilterHashTablePtr vars, vars1; virNWFilterHashTablePtr vars, vars1;
virNWFilterDefPtr filter; virNWFilterDefPtr filter;
virNWFilterDefPtr newFilter;
char vmmacaddr[VIR_MAC_STRING_BUFLEN] = {0}; char vmmacaddr[VIR_MAC_STRING_BUFLEN] = {0};
char *str_macaddr = NULL; char *str_macaddr = NULL;
virNWFilterVarValuePtr ipaddr; virNWFilterVarValuePtr ipaddr;
@ -815,7 +820,7 @@ __virNWFilterInstantiateFilter(virNWFilterDriverStatePtr driver,
return -1; return -1;
} }
if (obj->wantRemoved) { if (virNWFilterObjWantRemoved(obj)) {
virReportError(VIR_ERR_NO_NWFILTER, virReportError(VIR_ERR_NO_NWFILTER,
_("Filter '%s' is in use."), _("Filter '%s' is in use."),
filtername); filtername);
@ -847,12 +852,13 @@ __virNWFilterInstantiateFilter(virNWFilterDriverStatePtr driver,
goto err_exit_vars1; goto err_exit_vars1;
} }
filter = obj->def; filter = virNWFilterObjGetDef(obj);
switch (useNewFilter) { switch (useNewFilter) {
case INSTANTIATE_FOLLOW_NEWFILTER: case INSTANTIATE_FOLLOW_NEWFILTER:
if (obj->newDef) { newFilter = virNWFilterObjGetNewDef(obj);
filter = obj->newDef; if (newFilter) {
filter = newFilter;
*foundNewFilter = true; *foundNewFilter = true;
} }
break; break;