diff options
author | Guy Harris <guy@alum.mit.edu> | 2014-05-22 20:01:31 -0700 |
---|---|---|
committer | Guy Harris <guy@alum.mit.edu> | 2014-05-23 03:02:32 +0000 |
commit | c0c480d08c175eed4524ea9e73ec86298f468cf4 (patch) | |
tree | 1234cd09094dcc8447e3fb2b13671f12aba5ae69 /ui/gtk | |
parent | 6287efb9c05482531ea675bb5a3d23b03b5715ab (diff) |
Allow wtap_read() and wtap_seek_read() to return non-packet records.
This is the first step towards implementing the mechanisms requestd in
bug 8590; currently, we don't return any records other than packet
records from libwiretap, and just ignore non-packet records in the rest
of Wireshark, but this at least gets the ball rolling.
Change-Id: I34a45b54dd361f69fdad1a758d8ca4f42d67d574
Reviewed-on: https://code.wireshark.org/review/1736
Reviewed-by: Guy Harris <guy@alum.mit.edu>
Diffstat (limited to 'ui/gtk')
-rw-r--r-- | ui/gtk/capture_file_dlg.c | 35 | ||||
-rw-r--r-- | ui/gtk/iax2_analysis.c | 2 | ||||
-rw-r--r-- | ui/gtk/main.c | 4 | ||||
-rw-r--r-- | ui/gtk/packet_list_store.c | 2 | ||||
-rw-r--r-- | ui/gtk/packet_win.c | 2 | ||||
-rw-r--r-- | ui/gtk/rlc_lte_graph.c | 2 | ||||
-rw-r--r-- | ui/gtk/rtp_analysis.c | 2 | ||||
-rw-r--r-- | ui/gtk/sctp_assoc_analyse.c | 2 |
8 files changed, 28 insertions, 23 deletions
diff --git a/ui/gtk/capture_file_dlg.c b/ui/gtk/capture_file_dlg.c index baef2baed9..74f35d6748 100644 --- a/ui/gtk/capture_file_dlg.c +++ b/ui/gtk/capture_file_dlg.c @@ -173,6 +173,7 @@ preview_set_filename(GtkWidget *prev, const gchar *cf_name) static void preview_do(GtkWidget *prev, wtap *wth) { + int rec_type; GtkWidget *label; unsigned int elapsed_time; time_t time_preview; @@ -183,6 +184,7 @@ preview_do(GtkWidget *prev, wtap *wth) double start_time = 0; /* seconds, with nsec resolution */ double stop_time = 0; /* seconds, with nsec resolution */ double cur_time; + unsigned int records = 0; unsigned int packets = 0; gboolean is_breaked = FALSE; gchar string_buff[PREVIEW_STR_MAX]; @@ -192,22 +194,25 @@ preview_do(GtkWidget *prev, wtap *wth) time(&time_preview); - while ( (wtap_read(wth, &err, &err_info, &data_offset)) ) { - phdr = wtap_phdr(wth); - cur_time = nstime_to_sec(&phdr->ts); - if (packets == 0) { - start_time = cur_time; - stop_time = cur_time; - } - if (cur_time < start_time) { - start_time = cur_time; - } - if (cur_time > stop_time) { - stop_time = cur_time; - } + while ( (rec_type = wtap_read(wth, &err, &err_info, &data_offset)) != -1 ) { + if (rec_type == REC_TYPE_PACKET) { + phdr = wtap_phdr(wth); + cur_time = nstime_to_sec(&phdr->ts); + if (packets == 0) { + start_time = cur_time; + stop_time = cur_time; + } + if (cur_time < start_time) { + start_time = cur_time; + } + if (cur_time > stop_time) { + stop_time = cur_time; + } - packets++; - if (packets%1000 == 0) { + packets++; + } + records++; + if (records%1000 == 0) { /* do we have a timeout? */ time(&time_current); if (time_current-time_preview >= (time_t) prefs.gui_fileopen_preview) { diff --git a/ui/gtk/iax2_analysis.c b/ui/gtk/iax2_analysis.c index 6f7fe77c73..d756b3a58b 100644 --- a/ui/gtk/iax2_analysis.c +++ b/ui/gtk/iax2_analysis.c @@ -3711,7 +3711,7 @@ void iax2_analysis_cb(GtkAction *action _U_, gpointer user_data _U_) return; /* if we exit here it's an error */ /* dissect the current frame */ - if (!cf_read_frame(cf, fdata)) + if (cf_read_frame(cf, fdata) == -1) return; /* error reading the frame */ epan_dissect_init(&edt, cf->epan, TRUE, FALSE); epan_dissect_prime_dfilter(&edt, sfcode); diff --git a/ui/gtk/main.c b/ui/gtk/main.c index e49e0531a0..a3140b18e1 100644 --- a/ui/gtk/main.c +++ b/ui/gtk/main.c @@ -543,7 +543,7 @@ get_ip_address_list_from_packet_list_row(gpointer data) if (fdata != NULL) { epan_dissect_t edt; - if (!cf_read_frame (&cfile, fdata)) + if (cf_read_frame (&cfile, fdata) == -1) return NULL; /* error reading the frame */ epan_dissect_init(&edt, cfile.epan, FALSE, FALSE); @@ -584,7 +584,7 @@ get_filter_from_packet_list_row_and_column(gpointer data) if (fdata != NULL) { epan_dissect_t edt; - if (!cf_read_frame(&cfile, fdata)) + if (cf_read_frame(&cfile, fdata) == -1) return NULL; /* error reading the frame */ /* proto tree, visible. We need a proto tree if there's custom columns */ epan_dissect_init(&edt, cfile.epan, have_custom_cols(&cfile.cinfo), FALSE); diff --git a/ui/gtk/packet_list_store.c b/ui/gtk/packet_list_store.c index dd904b58be..efb8e44ea1 100644 --- a/ui/gtk/packet_list_store.c +++ b/ui/gtk/packet_list_store.c @@ -1117,7 +1117,7 @@ packet_list_dissect_and_cache_record(PacketList *packet_list, PacketListRecord * cinfo = NULL; buffer_init(&buf, 1500); - if (!cf_read_frame_r(&cfile, fdata, &phdr, &buf)) { + if (cf_read_frame_r(&cfile, fdata, &phdr, &buf) == -1) { /* * Error reading the frame. * diff --git a/ui/gtk/packet_win.c b/ui/gtk/packet_win.c index c25d62b48a..67fb5fddd2 100644 --- a/ui/gtk/packet_win.c +++ b/ui/gtk/packet_win.c @@ -961,7 +961,7 @@ void new_packet_window(GtkWidget *w _U_, gboolean reference, gboolean editable _ } /* With the new packetlists "lazy columns" it's necessary to reread the frame */ - if (!cf_read_frame(&cfile, fd)) { + if (cf_read_frame(&cfile, fd) == -1) { /* error reading the frame */ return; } diff --git a/ui/gtk/rlc_lte_graph.c b/ui/gtk/rlc_lte_graph.c index aeb5b9996b..eb9e2635f1 100644 --- a/ui/gtk/rlc_lte_graph.c +++ b/ui/gtk/rlc_lte_graph.c @@ -903,7 +903,7 @@ static rlc_lte_tap_info *select_rlc_lte_session(capture_file *cf, struct segment } /* dissect the current frame */ - if (!cf_read_frame(cf, fdata)) { + if (cf_read_frame(cf, fdata) == -1) { return NULL; /* error reading the frame */ } diff --git a/ui/gtk/rtp_analysis.c b/ui/gtk/rtp_analysis.c index 0305b0a26a..66c2406658 100644 --- a/ui/gtk/rtp_analysis.c +++ b/ui/gtk/rtp_analysis.c @@ -3946,7 +3946,7 @@ rtp_analysis_cb(GtkAction *action _U_, gpointer user_data _U_) return; /* if we exit here it's an error */ /* dissect the current frame */ - if (!cf_read_frame(cf, fdata)) + if (cf_read_frame(cf, fdata) == -1) return; /* error reading the frame */ epan_dissect_init(&edt, cf->epan, TRUE, FALSE); epan_dissect_prime_dfilter(&edt, sfcode); diff --git a/ui/gtk/sctp_assoc_analyse.c b/ui/gtk/sctp_assoc_analyse.c index 2b751f7135..927be97b0e 100644 --- a/ui/gtk/sctp_assoc_analyse.c +++ b/ui/gtk/sctp_assoc_analyse.c @@ -975,7 +975,7 @@ sctp_analyse_cb(struct sctp_analyse *u_data, gboolean ext) return; /* if we exit here it's an error */ /* dissect the current frame */ - if (!cf_read_frame(cf, fdata)) + if (cf_read_frame(cf, fdata) == -1) return; /* error reading the frame */ epan_dissect_init(&edt, cf->epan, TRUE, FALSE); |