From 286f3425e7aa27b8e9142ef2a5679a58e6feb518 Mon Sep 17 00:00:00 2001 From: Anders Broman Date: Thu, 23 Feb 2012 15:40:31 +0000 Subject: Have the used interfaces show up if number of interfaces > 0. (pcapng file). svn path=/trunk/; revision=41163 --- summary.c | 20 +++++++++++++++++- summary.h | 58 ++++++++++++++++++++++++++-------------------------- ui/gtk/summary_dlg.c | 2 +- 3 files changed, 49 insertions(+), 31 deletions(-) diff --git a/summary.c b/summary.c index 21b91c29f6..0fe058c7e6 100644 --- a/summary.c +++ b/summary.c @@ -138,11 +138,13 @@ summary_fill_in(capture_file *cf, summary_tally *st) #ifdef HAVE_LIBPCAP void -summary_fill_in_capture(capture_options *capture_opts, summary_tally *st) +summary_fill_in_capture(capture_file *cf,capture_options *capture_opts, summary_tally *st) { iface_options iface; interface_options interface_opts; guint i; + wtapng_iface_descriptions_t* idb_info; + wtapng_if_descr_t wtapng_if_descr; while (st->ifaces->len > 0) { iface = g_array_index(st->ifaces, iface_options, 0); @@ -164,6 +166,22 @@ summary_fill_in_capture(capture_options *capture_opts, summary_tally *st) iface.linktype = interface_opts.linktype; g_array_append_val(st->ifaces, iface); } + }else{ + idb_info = wtap_file_get_idb_info(cf->wth); + for (i = 0; i < idb_info->number_of_interfaces; i++) { + wtapng_if_descr = g_array_index(idb_info->interface_data, wtapng_if_descr_t, i); + iface.cfilter = g_strdup(wtapng_if_descr.if_filter); + iface.name = g_strdup(wtapng_if_descr.if_name); + iface.descr = g_strdup(wtapng_if_descr.if_description); + iface.drops_known = FALSE; + iface.drops = 0; + /*iface.has_snap = wtapng_if_descr.has_snaplen;*/ + iface.snap = wtapng_if_descr.snap_len; + iface.linktype = wtapng_if_descr.link_type; + g_array_append_val(st->ifaces, iface); + } + + } } #endif diff --git a/summary.h b/summary.h index da1c4f3aa5..acba531b6f 100644 --- a/summary.h +++ b/summary.h @@ -33,39 +33,39 @@ typedef struct iface_options_tag { char *name; char *descr; char *cfilter; - guint64 drops; /* number of packet drops */ + guint64 drops; /* number of packet drops */ gboolean drops_known; /* TRUE if number of packet drops is known */ - gboolean has_snap; /* TRUE if maximum capture packet length is known */ - int snap; /* Maximum captured packet length */ - int linktype; /* wiretap encapsulation type */ + gboolean has_snap; /* TRUE if maximum capture packet length is known */ + int snap; /* Maximum captured packet length */ + int linktype; /* wiretap encapsulation type */ } iface_options; typedef struct _summary_tally { - guint64 bytes; /* total bytes */ - double start_time; /* seconds, with msec resolution */ - double stop_time; /* seconds, with msec resolution */ - double elapsed_time; /* seconds, with msec resolution, - includes time before first packet - and after last packet */ - int marked_count; /* number of marked packets */ - guint64 marked_bytes; /* total bytes in the marked packets */ - double marked_start; /* time in seconds, with msec resolution */ - double marked_stop; /* time in seconds, with msec resolution */ - int ignored_count; /* number of ignored packets */ - int packet_count; /* total number of packets in trace */ - int filtered_count; /* number of filtered packets */ - guint64 filtered_bytes; /* total bytes in the filtered packets */ - double filtered_start; /* time in seconds, with msec resolution */ - double filtered_stop; /* time in seconds, with msec resolution */ + guint64 bytes; /**< total bytes */ + double start_time; /**< seconds, with msec resolution */ + double stop_time; /**< seconds, with msec resolution */ + double elapsed_time; /**< seconds, with msec resolution, + includes time before first packet + and after last packet */ + int marked_count; /**< number of marked packets */ + guint64 marked_bytes; /**< total bytes in the marked packets */ + double marked_start; /**< time in seconds, with msec resolution */ + double marked_stop; /**< time in seconds, with msec resolution */ + int ignored_count; /**< number of ignored packets */ + int packet_count; /**< total number of packets in trace */ + int filtered_count; /**< number of filtered packets */ + guint64 filtered_bytes; /**< total bytes in the filtered packets */ + double filtered_start; /**< time in seconds, with msec resolution */ + double filtered_stop; /**< time in seconds, with msec resolution */ const char *filename; - gint64 file_length; /* file length in bytes */ - int file_type; /* wiretap file type */ - int encap_type; /* wiretap encapsulation type */ - gboolean has_snap; /* TRUE if maximum capture packet length is known */ - int snap; /* Maximum captured packet length */ - gboolean drops_known; /* TRUE if number of packet drops is known */ - guint64 drops; /* number of packet drops */ - const char *dfilter; /* display filter */ + gint64 file_length; /**< file length in bytes */ + int file_type; /**< wiretap file type */ + int encap_type; /**< wiretap encapsulation type */ + gboolean has_snap; /**< TRUE if maximum capture packet length is known */ + int snap; /**< Maximum captured packet length */ + gboolean drops_known; /**< TRUE if number of packet drops is known */ + guint64 drops; /**< number of packet drops */ + const char *dfilter; /**< display filter */ gboolean is_tempfile; /* capture related, use summary_fill_in_capture() to get values */ GArray *ifaces; @@ -77,7 +77,7 @@ summary_fill_in(capture_file *cf, summary_tally *st); #ifdef HAVE_LIBPCAP extern void -summary_fill_in_capture(capture_options *capture_opts, summary_tally *st); +summary_fill_in_capture(capture_file *cf, capture_options *capture_opts, summary_tally *st); #endif #endif /* summary.h */ diff --git a/ui/gtk/summary_dlg.c b/ui/gtk/summary_dlg.c index 12a312053e..961f984441 100644 --- a/ui/gtk/summary_dlg.c +++ b/ui/gtk/summary_dlg.c @@ -167,7 +167,7 @@ summary_open_cb(GtkWidget *w _U_, gpointer d _U_) /* initial computations */ summary_fill_in(&cfile, &summary); #ifdef HAVE_LIBPCAP - summary_fill_in_capture(&global_capture_opts, &summary); + summary_fill_in_capture(&cfile, &global_capture_opts, &summary); #endif seconds = summary.stop_time - summary.start_time; disp_seconds = summary.filtered_stop - summary.filtered_start; -- cgit v1.2.3