exported_object: add cleanup function.
authorDario Lombardo <lomato@gmail.com>
Mon, 16 Jan 2017 21:08:12 +0000 (22:08 +0100)
committerMichael Mann <mmann78@netscape.net>
Tue, 17 Jan 2017 15:39:58 +0000 (15:39 +0000)
Change-Id: If4c35d18db1dc982e981004838e0eabbf4479e78
Reviewed-on: https://code.wireshark.org/review/19653
Petri-Dish: Michael Mann <mmann78@netscape.net>
Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org>
Reviewed-by: Michael Mann <mmann78@netscape.net>
epan/epan.c
epan/export_object.c
epan/export_object.h

index cf578f1c69fc27a840f1dcd72f9d08ae6395468d..0b12a690e7af8b020d86cb35e498361b864f88b8 100644 (file)
@@ -55,6 +55,7 @@
 #include "print.h"
 #include "capture_dissectors.h"
 #include "exported_pdu.h"
+#include "export_object.h"
 
 #ifdef HAVE_LUA
 #include <lua.h>
@@ -207,6 +208,7 @@ epan_cleanup(void)
        expert_cleanup();
        capture_dissector_cleanup();
        export_pdu_cleanup();
+       export_object_cleanup();
 #ifdef HAVE_LUA
        wslua_cleanup();
 #endif
index 495609b6b1aa3557b4bfab70f2afabf3706b6c3d..d5e4c0eed63d981ef8ca7163fcd067ae0744fa2e 100644 (file)
@@ -197,6 +197,21 @@ void eo_free_entry(export_object_entry_t *entry)
 
     g_free(entry);
 }
+
+static void
+free_eo_table(gpointer p, gpointer user_data _U_)
+{
+    register_eo_t *table = (register_eo_t*)p;
+    g_free((gpointer)table->tap_listen_str);
+    g_free(table);
+}
+
+void export_object_cleanup(void)
+{
+    g_slist_foreach(registered_eo_tables, free_eo_table, NULL);
+    g_slist_free(registered_eo_tables);
+}
+
 /*
  * Editor modelines
  *
index bd068e87c4a2bd5b23ee37e6d4fe04130b9b5827..475b1d8f0d034fa1bcd53eae270273aa696f5a8e 100644 (file)
@@ -135,6 +135,10 @@ WS_DLL_PUBLIC const char *eo_ct2ext(const char *content_type);
  */
 WS_DLL_PUBLIC void eo_free_entry(export_object_entry_t *entry);
 
+/** Free the export objects table
+ */
+extern void export_object_cleanup(void);
+
 #ifdef __cplusplus
 }
 #endif /* __cplusplus */