X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=dummynet2%2Fip_fw_table.c;h=d8973d505fbce4370413b54763a561758b7ee550;hb=28a7fe9d930667786b902af6697c01eb87694173;hp=8cbf457349e950b647b4e21b6464fa23ba5bcbcb;hpb=4e189c94aef3d3e9a4e8edfd2bb989feeb5d5e26;p=ipfw.git diff --git a/dummynet2/ip_fw_table.c b/dummynet2/ip_fw_table.c index 8cbf457..d8973d5 100644 --- a/dummynet2/ip_fw_table.c +++ b/dummynet2/ip_fw_table.c @@ -64,7 +64,9 @@ __FBSDID("$FreeBSD: head/sys/netinet/ipfw/ip_fw_table.c 200601 2009-12-16 10:48: #include #include +#include /* struct ipfw_rule_ref */ #include +#include /* LIST_HEAD */ #include #ifdef MAC @@ -174,14 +176,18 @@ ipfw_flush_table(struct ip_fw_chain *ch, uint16_t tbl) } void -ipfw_flush_tables(struct ip_fw_chain *ch) +ipfw_destroy_tables(struct ip_fw_chain *ch) { uint16_t tbl; + struct radix_node_head *rnh; IPFW_WLOCK_ASSERT(ch); - for (tbl = 0; tbl < IPFW_TABLES_MAX; tbl++) + for (tbl = 0; tbl < IPFW_TABLES_MAX; tbl++) { ipfw_flush_table(ch, tbl); + rnh = ch->tables[tbl]; + rn_detachhead((void **)&rnh); + } } int