aboutsummaryrefslogtreecommitdiffstats
path: root/ui/gtk
diff options
context:
space:
mode:
authorGuy Harris <guy@alum.mit.edu>2018-02-09 18:45:14 -0800
committerGuy Harris <guy@alum.mit.edu>2018-02-10 03:44:10 +0000
commit0b649a09100813151555308d6ccdbd18ec43accd (patch)
tree1e44ea0caf3c164e8851156a45f448ad7c3c5cb4 /ui/gtk
parent9797f340747e3f47191fe6b8df2dee657aa2179d (diff)
Separately count all records and data records.
A file might contain only metadata records, which exist only to provide information needed to interpret data records; no point in showing them in record counts. Put the counts into the structure that we fill in, and rename the structure and the routine to reflect that it determines statistics other than just times. Speak of data records rather than packets; the file might be full of Sysdig event records but not have any packets in it, for example. Change-Id: I8553181dca4129736bdae2c0cbba92becc28d6ef Reviewed-on: https://code.wireshark.org/review/25722 Petri-Dish: Guy Harris <guy@alum.mit.edu> Tested-by: Petri Dish Buildbot Reviewed-by: Guy Harris <guy@alum.mit.edu>
Diffstat (limited to 'ui/gtk')
-rw-r--r--ui/gtk/capture_file_dlg.c57
1 files changed, 34 insertions, 23 deletions
diff --git a/ui/gtk/capture_file_dlg.c b/ui/gtk/capture_file_dlg.c
index d83ca35cde..bae633e28e 100644
--- a/ui/gtk/capture_file_dlg.c
+++ b/ui/gtk/capture_file_dlg.c
@@ -87,7 +87,7 @@ static gboolean test_file_close(capture_file *cf, gboolean from_quit,
#define PREVIEW_TABLE_KEY "preview_table_key"
#define PREVIEW_FORMAT_KEY "preview_format_key"
#define PREVIEW_SIZE_KEY "preview_size_key"
-#define PREVIEW_PACKETS_KEY "preview_packets_key"
+#define PREVIEW_DATA_RECORDS_KEY "preview_data_records_key"
#define PREVIEW_FIRST_ELAPSED_KEY "preview_first_elapsed_key"
/* XXX - can we make these not be static? */
@@ -113,7 +113,7 @@ preview_set_filename(GtkWidget *prev, const gchar *cf_name)
gtk_label_set_text(GTK_LABEL(label), "-");
label = (GtkWidget *)g_object_get_data(G_OBJECT(prev), PREVIEW_SIZE_KEY);
gtk_label_set_text(GTK_LABEL(label), "-");
- label = (GtkWidget *)g_object_get_data(G_OBJECT(prev), PREVIEW_PACKETS_KEY);
+ label = (GtkWidget *)g_object_get_data(G_OBJECT(prev), PREVIEW_DATA_RECORDS_KEY);
gtk_label_set_text(GTK_LABEL(label), "-");
label = (GtkWidget *)g_object_get_data(G_OBJECT(prev), PREVIEW_FIRST_ELAPSED_KEY);
gtk_label_set_text(GTK_LABEL(label), "-");
@@ -166,22 +166,21 @@ preview_do(GtkWidget *prev, wtap *wth)
GtkWidget *label;
int err;
gchar *err_info;
- guint32 packets;
- ws_file_preview_times times;
- ws_file_preview_times_status status;
+ ws_file_preview_stats stats;
+ ws_file_preview_stats_status status;
gchar string_buff[PREVIEW_STR_MAX];
gchar first_buff[PREVIEW_STR_MAX];
time_t ti_time;
struct tm *ti_tm;
unsigned int elapsed_time;
- status = get_times_for_preview(wth, &times, &packets, &err, &err_info);
+ status = get_stats_for_preview(wth, &stats, &err, &err_info);
if(status == PREVIEW_READ_ERROR) {
/* XXX - give error details? */
g_free(err_info);
- g_snprintf(string_buff, PREVIEW_STR_MAX, "error after reading %u packets", packets);
- label = (GtkWidget *)g_object_get_data(G_OBJECT(prev), PREVIEW_PACKETS_KEY);
+ g_snprintf(string_buff, PREVIEW_STR_MAX, "error after reading %u records", stats.records);
+ label = (GtkWidget *)g_object_get_data(G_OBJECT(prev), PREVIEW_DATA_RECORDS_KEY);
gtk_label_set_text(GTK_LABEL(label), string_buff);
wtap_close(wth);
return;
@@ -189,18 +188,22 @@ preview_do(GtkWidget *prev, wtap *wth)
/* packet count */
if(status == PREVIEW_TIMED_OUT) {
- g_snprintf(string_buff, PREVIEW_STR_MAX, "more than %u packets (preview timeout)", packets);
+ g_snprintf(string_buff, PREVIEW_STR_MAX, "more than %u data records (preview timeout)", stats.data_records);
} else {
- g_snprintf(string_buff, PREVIEW_STR_MAX, "%u", packets);
+ g_snprintf(string_buff, PREVIEW_STR_MAX, "%u", stats.data_records);
}
- label = (GtkWidget *)g_object_get_data(G_OBJECT(prev), PREVIEW_PACKETS_KEY);
+ label = (GtkWidget *)g_object_get_data(G_OBJECT(prev), PREVIEW_DATA_RECORDS_KEY);
gtk_label_set_text(GTK_LABEL(label), string_buff);
/* First packet */
- if(status == PREVIEW_HAVE_NO_TIMES) {
- g_snprintf(first_buff, PREVIEW_STR_MAX, "unknown");
- } else {
- ti_time = (long)times.start_time;
+ if(stats.have_times) {
+ /*
+ * We saw at least one record with a time stamp, so we can give
+ * a start time (if we have a mix of records with and without
+ * time stamps, and there were records without time stamps
+ * before the one with a time stamp, this may be inaccurate).
+ */
+ ti_time = (long)stats.start_time;
ti_tm = localtime( &ti_time );
if (ti_tm) {
g_snprintf(first_buff, PREVIEW_STR_MAX,
@@ -214,22 +217,30 @@ preview_do(GtkWidget *prev, wtap *wth)
} else {
g_snprintf(first_buff, PREVIEW_STR_MAX, "?");
}
+ } else {
+ g_snprintf(first_buff, PREVIEW_STR_MAX, "unknown");
}
/* Elapsed time */
- if(status == PREVIEW_HAVE_NO_TIMES) {
- g_snprintf(string_buff, PREVIEW_STR_MAX, "%s / unknown", first_buff);
- } else {
- elapsed_time = (unsigned int)(times.stop_time-times.start_time);
- if(status == PREVIEW_TIMED_OUT) {
- g_snprintf(string_buff, PREVIEW_STR_MAX, "%s / unknown", first_buff);
- } else if (elapsed_time/86400) {
+ if(status == PREVIEW_SUCCEEDED && stats.have_times) {
+ /*
+ * We didn't time out, so we looked at all packets, and we got
+ * at least one packet with a time stamp, so we can calculate
+ * an elapsed time from the time stamp of the last packet with
+ * with a time stamp (if we have a mix of records with and without
+ * time stamps, and there were records without time stamps after
+ * the last one with a time stamp, this may be inaccurate).
+ */
+ elapsed_time = (unsigned int)(stats.stop_time-stats.start_time);
+ if (elapsed_time/86400) {
g_snprintf(string_buff, PREVIEW_STR_MAX, "%s / %02u days %02u:%02u:%02u",
first_buff, elapsed_time/86400, elapsed_time%86400/3600, elapsed_time%3600/60, elapsed_time%60);
} else {
g_snprintf(string_buff, PREVIEW_STR_MAX, "%s / %02u:%02u:%02u",
first_buff, elapsed_time%86400/3600, elapsed_time%3600/60, elapsed_time%60);
}
+ } else {
+ g_snprintf(string_buff, PREVIEW_STR_MAX, "%s / unknown", first_buff);
}
label = (GtkWidget *)g_object_get_data(G_OBJECT(prev), PREVIEW_FIRST_ELAPSED_KEY);
gtk_label_set_text(GTK_LABEL(label), string_buff);
@@ -365,7 +376,7 @@ preview_new(void)
label = add_string_to_grid(grid, &row, "Size:", "-");
g_object_set_data(G_OBJECT(grid), PREVIEW_SIZE_KEY, label);
label = add_string_to_grid(grid, &row, "Packets:", "-");
- g_object_set_data(G_OBJECT(grid), PREVIEW_PACKETS_KEY, label);
+ g_object_set_data(G_OBJECT(grid), PREVIEW_DATA_RECORDS_KEY, label);
label = add_string_to_grid(grid, &row, "Start / elapsed:", "-");
g_object_set_data(G_OBJECT(grid), PREVIEW_FIRST_ELAPSED_KEY, label);