Get rid of some void pointers.
authorGerald Combs <gerald@wireshark.org>
Fri, 1 Dec 2017 19:13:18 +0000 (11:13 -0800)
committerAnders Broman <a.broman58@gmail.com>
Fri, 1 Dec 2017 21:09:24 +0000 (21:09 +0000)
Explictly struct _capture_file * in epan_session and its callbacks.

Change-Id: I63703015c661a08f3350a7448a7bcdaf98f119dc
Reviewed-on: https://code.wireshark.org/review/24675
Reviewed-by: Gerald Combs <gerald@wireshark.org>
Petri-Dish: Gerald Combs <gerald@wireshark.org>
Tested-by: Petri Dish Buildbot
Reviewed-by: Anders Broman <a.broman58@gmail.com>
cfile.c
cfile.h
epan/epan-int.h
epan/epan.c
file.c
rawshark.c
sharkd.c
tfshark.c
tools/oss-fuzzshark/fuzzshark.c
tshark.c

diff --git a/cfile.c b/cfile.c
index 4bfd9180da68f3bd0f36c4598723e9b392871bc9..4115df45730df4706907e23bc147fd9fd3e4a025 100644 (file)
--- a/cfile.c
+++ b/cfile.c
@@ -19,9 +19,8 @@
 #include "cfile.h"
 
 const char *
-cap_file_get_interface_name(void *data, guint32 interface_id)
+cap_file_get_interface_name(struct _capture_file *cf, guint32 interface_id)
 {
-  capture_file *cf = (capture_file *) data;
   wtapng_iface_descriptions_t *idb_info;
   wtap_block_t wtapng_if_descr = NULL;
   char* interface_name;
@@ -43,9 +42,8 @@ cap_file_get_interface_name(void *data, guint32 interface_id)
 }
 
 const char *
-cap_file_get_interface_description(void *data, guint32 interface_id)
+cap_file_get_interface_description(struct _capture_file *cf, guint32 interface_id)
 {
-  capture_file *cf = (capture_file *) data;
   wtapng_iface_descriptions_t *idb_info;
   wtap_block_t wtapng_if_descr = NULL;
   char* interface_name;
diff --git a/cfile.h b/cfile.h
index bfb7d9bbcaf74f00678c4e1f5a7737c3a4986087..8f323648bbe84f8e27b95a98cd0191d0838f15cd 100644 (file)
--- a/cfile.h
+++ b/cfile.h
@@ -112,8 +112,8 @@ typedef struct _capture_file {
 
 extern void cap_file_init(capture_file *cf);
 
-extern const char *cap_file_get_interface_name(void *data, guint32 interface_id);
-extern const char *cap_file_get_interface_description(void *data, guint32 interface_id);
+extern const char *cap_file_get_interface_name(struct _capture_file *cf, guint32 interface_id);
+extern const char *cap_file_get_interface_description(struct _capture_file *cf, guint32 interface_id);
 
 #ifdef __cplusplus
 }
index 15b059f38823ba14049577bdb26298c324a54b99..05ae6407cb96de17686ecf0d86149498644d4a50 100644 (file)
 #include <epan/frame_data.h>
 #include <wsutil/nstime.h>
 
+struct _capture_file;
+
 struct epan_session {
-       void *data;
+       struct _capture_file *cf;
 
-       const nstime_t *(*get_frame_ts)(void *data, guint32 frame_num);
-       const char *(*get_interface_name)(void *data, guint32 interface_id);
-       const char *(*get_interface_description)(void *data, guint32 interface_id);
-       const char *(*get_user_comment)(void *data, const frame_data *fd);
+       const nstime_t *(*get_frame_ts)(struct _capture_file *cf, guint32 frame_num);
+       const char *(*get_interface_name)(struct _capture_file *cf, guint32 interface_id);
+       const char *(*get_interface_description)(struct _capture_file *cf, guint32 interface_id);
+       const char *(*get_user_comment)(struct _capture_file *cf, const frame_data *fd);
 };
 
 #endif
index bdd19cd6e87f84f09fadc468690457231bf1571f..0bb62232dd93f332ab0a812f73e1e12e4a0fd0d7 100644 (file)
@@ -286,7 +286,7 @@ epan_cleanup(void)
 epan_t *
 epan_new(void)
 {
-       epan_t *session = g_slice_new(epan_t);
+       epan_t *session = g_slice_new0(epan_t);
 
        /* XXX, it should take session as param */
        init_dissection();
@@ -298,7 +298,7 @@ const char *
 epan_get_user_comment(const epan_t *session, const frame_data *fd)
 {
        if (session->get_user_comment)
-               return session->get_user_comment(session->data, fd);
+               return session->get_user_comment(session->cf, fd);
 
        return NULL;
 }
@@ -307,7 +307,7 @@ const char *
 epan_get_interface_name(const epan_t *session, guint32 interface_id)
 {
        if (session->get_interface_name)
-               return session->get_interface_name(session->data, interface_id);
+               return session->get_interface_name(session->cf, interface_id);
 
        return NULL;
 }
@@ -316,7 +316,7 @@ const char *
 epan_get_interface_description(const epan_t *session, guint32 interface_id)
 {
        if (session->get_interface_description)
-               return session->get_interface_description(session->data, interface_id);
+               return session->get_interface_description(session->cf, interface_id);
 
        return NULL;
 }
@@ -327,7 +327,7 @@ epan_get_frame_ts(const epan_t *session, guint32 frame_num)
        const nstime_t *abs_ts = NULL;
 
        if (session->get_frame_ts)
-               abs_ts = session->get_frame_ts(session->data, frame_num);
+               abs_ts = session->get_frame_ts(session->cf, frame_num);
 
        if (!abs_ts)
                ws_g_warning("!!! couldn't get frame ts for %u !!!\n", frame_num);
diff --git a/file.c b/file.c
index f8748c4f837aed0117432f099f1f1f6a84e2301f..edef35f77e77aabdd05194c038c6192036b892c9 100644 (file)
--- a/file.c
+++ b/file.c
@@ -225,10 +225,8 @@ static void compute_elapsed(capture_file *cf, GTimeVal *start_time)
 }
 
 static const nstime_t *
-ws_get_frame_ts(void *data, guint32 frame_num)
+ws_get_frame_ts(struct _capture_file *cf, guint32 frame_num)
 {
-  capture_file *cf = (capture_file *) data;
-
   if (cf->prev_dis && cf->prev_dis->num == frame_num)
     return &cf->prev_dis->abs_ts;
 
@@ -245,10 +243,8 @@ ws_get_frame_ts(void *data, guint32 frame_num)
 }
 
 static const char *
-ws_get_user_comment(void *data, const frame_data *fd)
+ws_get_user_comment(struct _capture_file *cf, const frame_data *fd)
 {
-  capture_file *cf = (capture_file *) data;
-
   return cf_get_user_packet_comment(cf, fd);
 }
 
@@ -257,7 +253,7 @@ ws_epan_new(capture_file *cf)
 {
   epan_t *epan = epan_new();
 
-  epan->data = cf;
+  epan->cf = cf;
   epan->get_frame_ts = ws_get_frame_ts;
   epan->get_interface_name = cap_file_get_interface_name;
   epan->get_interface_description = cap_file_get_interface_description;
index c3bbb7660d5589d09421e14dc718fc70b70ff30d..c385713217579a1a421ea627d86e49d7497c8b7e 100644 (file)
@@ -1466,7 +1466,7 @@ open_failure_message(const char *filename, int err, gboolean for_writing)
 }
 
 static const nstime_t *
-raw_get_frame_ts(void *data _U_, guint32 frame_num)
+raw_get_frame_ts(struct _capture_file *cf _U_, guint32 frame_num)
 {
     if (ref && ref->num == frame_num)
         return &ref->abs_ts;
@@ -1485,7 +1485,7 @@ raw_epan_new(capture_file *cf)
 {
     epan_t *epan = epan_new();
 
-    epan->data = cf;
+    epan->cf = cf;
     epan->get_frame_ts = raw_get_frame_ts;
     epan->get_interface_name = cap_file_get_interface_name;
     epan->get_interface_description = cap_file_get_interface_description;
index c24e3f3ecc710b0fed5c0c8b798940c2a0941218..e7cfc3bd589606079b590f7705de4be6ed7f2fa9 100644 (file)
--- a/sharkd.c
+++ b/sharkd.c
@@ -224,10 +224,8 @@ clean_exit:
 }
 
 static const nstime_t *
-sharkd_get_frame_ts(void *data, guint32 frame_num)
+sharkd_get_frame_ts(struct _capture_file *cf, guint32 frame_num)
 {
-  capture_file *cf = (capture_file *) data;
-
   if (ref && ref->num == frame_num)
     return &ref->abs_ts;
 
@@ -251,7 +249,7 @@ sharkd_epan_new(capture_file *cf)
 {
   epan_t *epan = epan_new();
 
-  epan->data = cf;
+  epan->cf = cf;
   epan->get_frame_ts = sharkd_get_frame_ts;
   epan->get_interface_name = cap_file_get_interface_name;
   epan->get_interface_description = cap_file_get_interface_description;
index 00380bf8e9979a5a367c920846cae2a74ef3e45b..e7dedaf58e812a0d71b60b079f20b2be7946a9ab 100644 (file)
--- a/tfshark.c
+++ b/tfshark.c
@@ -1026,10 +1026,8 @@ clean_exit:
 }
 
 static const nstime_t *
-tfshark_get_frame_ts(void *data, guint32 frame_num)
+tfshark_get_frame_ts(struct _capture_file *cf, guint32 frame_num)
 {
-  capture_file *cf = (capture_file *) data;
-
   if (ref && ref->num == frame_num)
     return &ref->abs_ts;
 
@@ -1049,7 +1047,7 @@ tfshark_get_frame_ts(void *data, guint32 frame_num)
 }
 
 static const char *
-no_interface_name(void *data _U_, guint32 interface_id _U_)
+no_interface_name(struct _capture_file *cf _U_, guint32 interface_id _U_)
 {
     return "";
 }
@@ -1059,7 +1057,7 @@ tfshark_epan_new(capture_file *cf)
 {
   epan_t *epan = epan_new();
 
-  epan->data = cf;
+  epan->cf = cf;
   epan->get_frame_ts = tfshark_get_frame_ts;
   epan->get_interface_name = no_interface_name;
   epan->get_user_comment = NULL;
index 9500d99f6a2c175a5cb4d27d4bbff5c8ce3f86d6..d05838da201c1147b8ab12d2936c951fab2ccf50 100644 (file)
@@ -111,7 +111,7 @@ failure_message_cont(const char *msg_format, va_list ap)
 }
 
 static const nstime_t *
-fuzzshark_get_frame_ts(void *data _U_, guint32 frame_num _U_)
+fuzzshark_get_frame_ts(struct _capture_file *cf _U_, guint32 frame_num _U_)
 {
        static nstime_t empty;
 
index 7e013ba274a7979f98a2979f022347f886e68b67..1c0ec4c4dba33fcdec068f236193189daf962e98 100644 (file)
--- a/tshark.c
+++ b/tshark.c
@@ -2346,10 +2346,8 @@ pipe_input_set_handler(gint source, gpointer user_data, ws_process_id *child_pro
 }
 
 static const nstime_t *
-tshark_get_frame_ts(void *data, guint32 frame_num)
+tshark_get_frame_ts(struct _capture_file *cf, guint32 frame_num)
 {
-  capture_file *cf = (capture_file *) data;
-
   if (ref && ref->num == frame_num)
     return &ref->abs_ts;
 
@@ -2373,7 +2371,7 @@ tshark_epan_new(capture_file *cf)
 {
   epan_t *epan = epan_new();
 
-  epan->data = cf;
+  epan->cf = cf;
   epan->get_frame_ts = tshark_get_frame_ts;
   epan->get_interface_name = cap_file_get_interface_name;
   epan->get_interface_description = cap_file_get_interface_description;