diff options
author | Guy Harris <guy@alum.mit.edu> | 2019-04-06 18:35:00 -0700 |
---|---|---|
committer | Guy Harris <guy@alum.mit.edu> | 2019-04-07 02:23:58 +0000 |
commit | 2c1dcfed4f68fb5b37659fc8f85180504ae2f152 (patch) | |
tree | 93826d8b00b057e71089175f751a388aee292f8e | |
parent | 4c8a226c075732f83e77757ccaff31f32d92f9e8 (diff) |
The wtap from which we're reading to get statistics isn't a statistic itself.
Move it to the capture_session structure from the info_data_t structure,
and pass it as an argument to capture_info_new_packets().
Change-Id: I822392bbf48eeb27ba9e17b73775d2fc4349bc17
Reviewed-on: https://code.wireshark.org/review/32765
Petri-Dish: Guy Harris <guy@alum.mit.edu>
Tested-by: Petri Dish Buildbot
Reviewed-by: Guy Harris <guy@alum.mit.edu>
-rw-r--r-- | capchild/capture_session.h | 1 | ||||
-rw-r--r-- | capture_info.c | 6 | ||||
-rw-r--r-- | capture_info.h | 3 | ||||
-rw-r--r-- | ui/capture.c | 17 |
4 files changed, 14 insertions, 13 deletions
diff --git a/capchild/capture_session.h b/capchild/capture_session.h index 3f113f5720..65a7d48fa0 100644 --- a/capchild/capture_session.h +++ b/capchild/capture_session.h @@ -52,6 +52,7 @@ typedef struct _capture_session { guint32 count; /**< Total number of frames captured */ capture_options *capture_opts; /**< options for this capture */ capture_file *cf; /**< handle to cfile */ + struct wtap *wtap; /**< current wtap file */ struct _info_data *cap_data_info; /**< stats for this capture */ } capture_session; diff --git a/capture_info.c b/capture_info.c index 887375daae..f4967a746d 100644 --- a/capture_info.c +++ b/capture_info.c @@ -35,7 +35,7 @@ capture_info_packet(info_data_t* cap_info, gint wtap_linktype, const guchar *pd, } /* new packets arrived */ -void capture_info_new_packets(int to_read, info_data_t* cap_info) +void capture_info_new_packets(int to_read, wtap *wth, info_data_t* cap_info) { int err; gchar *err_info; @@ -52,8 +52,8 @@ void capture_info_new_packets(int to_read, info_data_t* cap_info) wtap_rec_init(&rec); ws_buffer_init(&buf, 1514); while (to_read > 0) { - wtap_cleareof(cap_info->wtap); - if (wtap_read(cap_info->wtap, &rec, &buf, &err, &err_info, &data_offset)) { + wtap_cleareof(wth); + if (wtap_read(wth, &rec, &buf, &err, &err_info, &data_offset)) { if (rec.rec_type == REC_TYPE_PACKET) { pseudo_header = &rec.rec_header.packet_header.pseudo_header; wtap_linktype = rec.rec_header.packet_header.pkt_encap; diff --git a/capture_info.h b/capture_info.h index 09ab8f4d61..d1d998c5d4 100644 --- a/capture_info.h +++ b/capture_info.h @@ -38,12 +38,11 @@ typedef struct _capture_info { typedef struct _info_data { packet_counts counts; /* Packet counting */ - struct wtap* wtap; /* current wtap file */ capture_info ui; /* user interface data */ } info_data_t; /* new packets arrived - read from wtap, count */ -extern void capture_info_new_packets(int to_read, info_data_t* cap_info); +extern void capture_info_new_packets(int to_read, wtap *wtap, info_data_t* cap_info); /** Create the capture info dialog */ extern void diff --git a/ui/capture.c b/ui/capture.c index 002160c262..9c60d29da6 100644 --- a/ui/capture.c +++ b/ui/capture.c @@ -145,6 +145,8 @@ capture_start(capture_options *capture_opts, capture_session *cap_session, info_ capture_callback_invoke(capture_cb_capture_prepared, cap_session); if (capture_opts->show_info) { + cap_session->wtap = NULL; + if (cap_data->counts.counts_hash != NULL) { /* Clean up any previous lists of packet counts */ @@ -155,7 +157,6 @@ capture_start(capture_options *capture_opts, capture_session *cap_session, info_ cap_data->counts.other = 0; cap_data->counts.total = 0; - cap_data->wtap = NULL; cap_data->ui.counts = &cap_data->counts; capture_info_ui_create(&cap_data->ui, cap_session); @@ -447,12 +448,12 @@ capture_input_new_file(capture_session *cap_session, gchar *new_file) } if(capture_opts->show_info) { - if (cap_session->cap_data_info->wtap != NULL) { - wtap_close(cap_session->cap_data_info->wtap); + if (cap_session->wtap != NULL) { + wtap_close(cap_session->wtap); } - cap_session->cap_data_info->wtap = wtap_open_offline(new_file, WTAP_TYPE_AUTO, &err, &err_info, FALSE); - if (!cap_session->cap_data_info->wtap) { + cap_session->wtap = wtap_open_offline(new_file, WTAP_TYPE_AUTO, &err, &err_info, FALSE); + if (!cap_session->wtap) { err_msg = g_strdup_printf(cf_open_error_message(err, err_info, FALSE, WTAP_FILE_TYPE_SUBTYPE_UNKNOWN), new_file); g_warning("capture_input_new_file: %d (%s)", err, err_msg); @@ -508,7 +509,7 @@ capture_input_new_packets(capture_session *cap_session, int to_read) } if(capture_opts->show_info) - capture_info_new_packets(to_read, cap_session->cap_data_info); + capture_info_new_packets(to_read, cap_session->wtap, cap_session->cap_data_info); } @@ -704,8 +705,8 @@ capture_input_closed(capture_session *cap_session, gchar *msg) if(capture_opts->show_info) { capture_info_ui_destroy(&cap_session->cap_data_info->ui); - if(cap_session->cap_data_info->wtap) - wtap_close(cap_session->cap_data_info->wtap); + if(cap_session->wtap) + wtap_close(cap_session->wtap); } cap_session->state = CAPTURE_STOPPED; |