virDomainDeviceInfoClear(&def->info);
VIR_FREE(def->filter);
- virNWFilterHashTableFree(def->filterparams);
+ virHashFree(def->filterparams);
def->filterparams = NULL;
virNetDevBandwidthFree(def->bandwidth);
goto error;
}
filter = virXMLPropString(cur, "filter");
- virNWFilterHashTableFree(filterparams);
+ virHashFree(filterparams);
filterparams = virNWFilterParseParamAttributes(cur);
} else if ((flags & VIR_DOMAIN_DEF_PARSE_STATUS) &&
virXMLNodeNameEqual(cur, "state")) {
VIR_FREE(vhost_path);
VIR_FREE(localaddr);
VIR_FREE(localport);
- virNWFilterHashTableFree(filterparams);
+ virHashFree(filterparams);
return def;
{
if (!inc)
return;
- virNWFilterHashTableFree(inc->params);
+ virHashFree(inc->params);
VIR_FREE(inc->filterref);
VIR_FREE(inc);
}
if (!val)
goto cleanup;
addrCopy = NULL;
- ret = virNWFilterHashTablePut(ipAddressMap, ifname, val);
+ ret = virHashUpdateEntry(ipAddressMap, ifname, val);
if (ret < 0)
virNWFilterVarValueFree(val);
goto cleanup;
} else {
remove_entry:
/* remove whole entry */
- val = virNWFilterHashTableRemoveEntry(ipAddressMap, ifname);
- virNWFilterVarValueFree(val);
+ virHashRemoveEntry(ipAddressMap, ifname);
ret = 0;
}
void
virNWFilterIPAddrMapShutdown(void)
{
- virNWFilterHashTableFree(ipAddressMap);
+ virHashFree(ipAddressMap);
ipAddressMap = NULL;
}
}
-/**
- * virNWFilterHashTablePut:
- * @table: Pointer to a virNWFilterHashTable
- * @name: name of the key to enter
- * @val: The value associated with the key
- * @freeName: Whether the name must be freed on table destruction
- *
- * Returns 0 on success, -1 on failure.
- *
- * Put an entry into the hashmap replacing and freeing an existing entry
- * if one existed.
- */
-int
-virNWFilterHashTablePut(virNWFilterHashTablePtr table,
- const char *name,
- virNWFilterVarValuePtr val)
-{
- if (!virHashLookup(table, name)) {
- if (virHashAddEntry(table, name, val) < 0)
- return -1;
- } else {
- if (virHashUpdateEntry(table, name, val) < 0)
- return -1;
- }
- return 0;
-}
-
-
-/**
- * virNWFilterHashTableFree:
- * @table: Pointer to virNWFilterHashTable
- *
- * Free a hashtable de-allocating memory for all its entries.
- *
- * All hash tables within the NWFilter driver must use this
- * function to deallocate and free their content.
- */
-void
-virNWFilterHashTableFree(virNWFilterHashTablePtr table)
-{
- virHashFree(table);
-}
-
-
virNWFilterHashTablePtr
virNWFilterHashTableCreate(int n)
{
return virHashCreate(n, hashDataFree);
}
-
-void *
-virNWFilterHashTableRemoveEntry(virNWFilterHashTablePtr ht,
- const char *entry)
-{
- return virHashSteal(ht, entry);
-}
-
-
struct addToTableStruct {
virNWFilterHashTablePtr target;
int errOccurred;
return 0;
}
- if (virNWFilterHashTablePut(atts->target, (const char *)name, val) < 0) {
- virReportError(VIR_ERR_INTERNAL_ERROR,
- _("Could not put variable '%s' into hashmap"),
- (const char *)name);
+ if (virHashUpdateEntry(atts->target, (const char *)name, val) < 0) {
atts->errOccurred = 1;
virNWFilterVarValueFree(val);
}
value = virNWFilterParseVarValue(val);
if (!value)
goto skip_entry;
- if (virNWFilterHashTablePut(table, nam, value) < 0)
+ if (virHashUpdateEntry(table, nam, value) < 0)
goto err_exit;
}
value = NULL;
VIR_FREE(nam);
VIR_FREE(val);
virNWFilterVarValueFree(value);
- virNWFilterHashTableFree(table);
+ virHashFree(table);
return NULL;
}
const char *filterref);
virNWFilterHashTablePtr virNWFilterHashTableCreate(int n);
-void virNWFilterHashTableFree(virNWFilterHashTablePtr table);
-int virNWFilterHashTablePut(virNWFilterHashTablePtr table,
- const char *name,
- virNWFilterVarValuePtr val);
-void *virNWFilterHashTableRemoveEntry(virNWFilterHashTablePtr table,
- const char *name);
int virNWFilterHashTablePutAll(virNWFilterHashTablePtr src,
virNWFilterHashTablePtr dest);
bool virNWFilterHashTableEqual(virNWFilterHashTablePtr a,
# conf/nwfilter_params.h
virNWFilterHashTableCreate;
virNWFilterHashTableEqual;
-virNWFilterHashTableFree;
-virNWFilterHashTablePut;
virNWFilterHashTablePutAll;
-virNWFilterHashTableRemoveEntry;
virNWFilterVarAccessGetVarName;
virNWFilterVarAccessIsAvailable;
virNWFilterVarAccessPrint;
VIR_FREE(req->ifname);
VIR_FREE(req->linkdev);
VIR_FREE(req->filtername);
- virNWFilterHashTableFree(req->vars);
+ virHashFree(req->vars);
virMutexDestroy(&req->lock);
virCondDestroy(&req->threadStatusCond);
}
/* a recycled req may still have filtername and vars */
VIR_FREE(req->filtername);
- virNWFilterHashTableFree(req->vars);
+ virHashFree(req->vars);
} else {
req = virNWFilterSnoopReqNew(ifkey);
if (!req)
if (!inst)
return;
- virNWFilterHashTableFree(inst->vars);
+ virHashFree(inst->vars);
VIR_FREE(inst);
}
return NULL;
if (virNWFilterVarHashmapAddStdValues(table, macaddr, ipaddr) < 0) {
- virNWFilterHashTableFree(table);
+ virHashFree(table);
return NULL;
}
return table;
return res;
err_exit:
- virNWFilterHashTableFree(res);
+ virHashFree(res);
return NULL;
}
cleanup:
if (ret < 0)
virNWFilterInstReset(inst);
- virNWFilterHashTableFree(tmpvars);
+ virHashFree(tmpvars);
if (obj)
virNWFilterObjUnlock(obj);
return ret;
}
varAccess = virBufferContentAndReset(&buf);
- rc = virNWFilterHashTablePut(missing_vars, varAccess, val);
+ rc = virHashUpdateEntry(missing_vars, varAccess, val);
VIR_FREE(varAccess);
if (rc < 0) {
virNWFilterVarValueFree(val);
useNewFilter,
driver);
- virNWFilterHashTableFree(tmpvars);
+ virHashFree(tmpvars);
virNWFilterObjUnlock(obj);
if (rc < 0)
err_exit:
virNWFilterInstReset(&inst);
- virNWFilterHashTableFree(missing_vars);
+ virHashFree(missing_vars);
return rc;
teardownOld, macaddr, driver,
forceWithPendingReq);
- virNWFilterHashTableFree(vars);
+ virHashFree(vars);
err_exit_vars1:
- virNWFilterHashTableFree(vars1);
+ virHashFree(vars1);
err_exit:
virNWFilterObjUnlock(obj);
return;
VIR_FREE(req->filtername);
- virNWFilterHashTableFree(req->filterparams);
+ virHashFree(req->filterparams);
VIR_FREE(req);
}
err_dereg_req:
virNWFilterDeregisterLearnReq(ifindex);
err_free_ht:
- virNWFilterHashTableFree(ht);
+ virHashFree(ht);
err_free_req:
virNWFilterIPAddrLearnReqFree(req);
err_no_req:
return res;
err_exit:
- virNWFilterHashTableFree(res);
+ virHashFree(res);
return NULL;
}
if (!inst)
return;
- virNWFilterHashTableFree(inst->vars);
+ virHashFree(inst->vars);
VIR_FREE(inst);
}
cleanup:
if (ret < 0)
virNWFilterInstReset(inst);
- virNWFilterHashTableFree(tmpvars);
+ virHashFree(tmpvars);
VIR_FREE(xml);
return ret;
}
val = virNWFilterVarValueCreateSimpleCopyValue(value);
if (!val)
goto cleanup;
- if (virNWFilterHashTablePut(vars, name, val) < 0) {
+ if (virHashUpdateEntry(vars, name, val) < 0) {
virNWFilterVarValueFree(val);
goto cleanup;
}
virBufferFreeAndReset(&buf);
VIR_FREE(actualargv);
virNWFilterInstReset(&inst);
- virNWFilterHashTableFree(vars);
+ virHashFree(vars);
return ret;
}