svn commit: r282081 - head/sys/netpfil/ipfw
Alexander V. Chernikov
melifaro at FreeBSD.org
Mon Apr 27 09:16:23 UTC 2015
Author: melifaro
Date: Mon Apr 27 09:16:22 2015
New Revision: 282081
URL: https://svnweb.freebsd.org/changeset/base/282081
Log:
Use free_nat_instance() for nat instance deletion.
Sponsored by: Yandex LLC
Modified:
head/sys/netpfil/ipfw/ip_fw_nat.c
Modified: head/sys/netpfil/ipfw/ip_fw_nat.c
==============================================================================
--- head/sys/netpfil/ipfw/ip_fw_nat.c Mon Apr 27 09:15:36 2015 (r282080)
+++ head/sys/netpfil/ipfw/ip_fw_nat.c Mon Apr 27 09:16:22 2015 (r282081)
@@ -265,6 +265,16 @@ add_redir_spool_cfg(char *buf, struct cf
return (0);
}
+static void
+free_nat_instance(struct cfg_nat *ptr)
+{
+
+ del_redir_spool_cfg(ptr, &ptr->redir_chain);
+ LibAliasUninit(ptr->lib);
+ free(ptr, M_IPFW);
+}
+
+
/*
* ipfw_nat - perform mbuf header translation.
*
@@ -538,7 +548,7 @@ nat44_config(struct ip_fw_chain *chain,
IPFW_UH_WUNLOCK(chain);
if (tcfg != NULL)
- free(tcfg, M_IPFW);
+ free_nat_instance(ptr);
}
/*
@@ -628,9 +638,7 @@ nat44_destroy(struct ip_fw_chain *chain,
IPFW_WUNLOCK(chain);
IPFW_UH_WUNLOCK(chain);
- del_redir_spool_cfg(ptr, &ptr->redir_chain);
- LibAliasUninit(ptr->lib);
- free(ptr, M_IPFW);
+ free_nat_instance(ptr);
return (0);
}
@@ -996,9 +1004,7 @@ ipfw_nat_del(struct sockopt *sopt)
flush_nat_ptrs(chain, i);
IPFW_WUNLOCK(chain);
IPFW_UH_WUNLOCK(chain);
- del_redir_spool_cfg(ptr, &ptr->redir_chain);
- LibAliasUninit(ptr->lib);
- free(ptr, M_IPFW);
+ free_nat_instance(ptr);
return (0);
}
@@ -1141,9 +1147,7 @@ vnet_ipfw_nat_uninit(const void *arg __u
IPFW_WLOCK(chain);
LIST_FOREACH_SAFE(ptr, &chain->nat, _next, ptr_temp) {
LIST_REMOVE(ptr, _next);
- del_redir_spool_cfg(ptr, &ptr->redir_chain);
- LibAliasUninit(ptr->lib);
- free(ptr, M_IPFW);
+ free_nat_instance(ptr);
}
flush_nat_ptrs(chain, -1 /* flush all */);
V_ipfw_nat_ready = 0;
More information about the svn-src-head
mailing list