*/
static int
virNWFilterVarHashmapAddStdValues(virHashTablePtr table,
- char *macaddr,
+ const char *macaddr,
const virNWFilterVarValue *ipaddr)
{
virNWFilterVarValue *val;
if (macaddr) {
- val = virNWFilterVarValueCreateSimple(macaddr);
+ val = virNWFilterVarValueCreateSimpleCopyValue(macaddr);
if (!val)
return -1;
if (virHashAddEntry(table,
NWFILTER_STD_VAR_MAC,
val) < 0) {
+ virNWFilterVarValueFree(val);
virReportError(VIR_ERR_INTERNAL_ERROR,
"%s", _("Could not add variable 'MAC' to hashmap"));
return -1;
if (virHashAddEntry(table,
NWFILTER_STD_VAR_IP,
val) < 0) {
+ virNWFilterVarValueFree(val);
virReportError(VIR_ERR_INTERNAL_ERROR,
"%s", _("Could not add variable 'IP' to hashmap"));
return -1;
* Returns pointer to hashmap, NULL if an error occurred.
*/
virHashTablePtr
-virNWFilterCreateVarHashmap(char *macaddr,
+virNWFilterCreateVarHashmap(const char *macaddr,
const virNWFilterVarValue *ipaddr)
{
virHashTablePtr table = virNWFilterHashTableCreate(0);
virNWFilterDefPtr filter;
virNWFilterDefPtr newFilter;
char vmmacaddr[VIR_MAC_STRING_BUFLEN] = {0};
- char *str_macaddr = NULL;
virNWFilterVarValuePtr ipaddr;
- char *str_ipaddr = NULL;
techdriver = virNWFilterTechDriverForName(drvname);
return -1;
virMacAddrFormat(macaddr, vmmacaddr);
- if (VIR_STRDUP(str_macaddr, vmmacaddr) < 0) {
- rc = -1;
- goto err_exit;
- }
ipaddr = virNWFilterIPAddrMapGetIPAddr(ifname);
- vars1 = virNWFilterCreateVarHashmap(str_macaddr, ipaddr);
+ vars1 = virNWFilterCreateVarHashmap(vmmacaddr, ipaddr);
if (!vars1) {
rc = -1;
goto err_exit;
}
- str_macaddr = NULL;
- str_ipaddr = NULL;
-
vars = virNWFilterCreateVarsFrom(vars1,
filterparams);
if (!vars) {
err_exit:
virNWFilterObjUnlock(obj);
- VIR_FREE(str_ipaddr);
- VIR_FREE(str_macaddr);
-
return rc;
}