summaryrefslogtreecommitdiff
path: root/epan/reassemble.c
diff options
context:
space:
mode:
authorDario Lombardo <lomato@gmail.com>2017-01-20 17:02:52 +0100
committerMichael Mann <mmann78@netscape.net>2017-01-21 00:28:28 +0000
commit317649f94984cf3d17f2a57badebb78d7703cdb5 (patch)
tree6a2c029b05e75c0934ccea4b1fc2d6bae0b3b2b6 /epan/reassemble.c
parentd020990f0356f4793e00209ae99e9f2dd7b843c9 (diff)
downloadwireshark-317649f94984cf3d17f2a57badebb78d7703cdb5.tar.gz
reassemble: add cleanup routine.
Change-Id: I948d342a29aacc2212076359e5b073113c50c5de Reviewed-on: https://code.wireshark.org/review/19697 Reviewed-by: Michael Mann <mmann78@netscape.net>
Diffstat (limited to 'epan/reassemble.c')
-rw-r--r--epan/reassemble.c17
1 files changed, 17 insertions, 0 deletions
diff --git a/epan/reassemble.c b/epan/reassemble.c
index d28f7f1293..b1363d8314 100644
--- a/epan/reassemble.c
+++ b/epan/reassemble.c
@@ -41,6 +41,8 @@ typedef struct _fragment_addresses_key {
guint32 id;
} fragment_addresses_key;
+GList* reassembly_table_list = NULL;
+
static guint
fragment_addresses_hash(gconstpointer k)
{
@@ -463,6 +465,8 @@ reassembly_table_init(reassembly_table *table,
table->reassembled_table = g_hash_table_new_full(reassembled_hash,
reassembled_equal, reassembled_key_free, NULL);
}
+
+ reassembly_table_list = g_list_append(reassembly_table_list, table);
}
/*
@@ -2786,6 +2790,19 @@ show_fragment_seq_tree(fragment_head *fd_head, const fragment_items *fit,
return show_fragment_errs_in_col(fd_head, fit, pinfo);
}
+void
+reassembly_table_free(gpointer p, gpointer user_data _U_)
+{
+ reassembly_table_destroy((reassembly_table*)p);
+}
+
+void
+reassembly_table_cleanup(void)
+{
+ g_list_foreach(reassembly_table_list, reassembly_table_free, NULL);
+ g_list_free(reassembly_table_list);
+}
+
/*
* Editor modelines - http://www.wireshark.org/tools/modelines.html
*