diff options
author | Anders Broman <anders.broman@ericsson.com> | 2012-11-27 13:35:33 +0000 |
---|---|---|
committer | Anders Broman <anders.broman@ericsson.com> | 2012-11-27 13:35:33 +0000 |
commit | 18d5f2dbfcb40837264bd75baaaba5ff96040e75 (patch) | |
tree | 62363d690ed052a3a2283d574e31e18f44d1a569 /ui | |
parent | 70a4056c1d145b290ebb2b13e0b29cc6036856a8 (diff) |
Start including info from Statistics/Summary.
svn path=/trunk/; revision=46219
Diffstat (limited to 'ui')
-rw-r--r-- | ui/gtk/edit_packet_comment_dlg.c | 11 | ||||
-rw-r--r-- | ui/gtk/main_menubar.c | 2 | ||||
-rw-r--r-- | ui/gtk/packet_list.c | 11 | ||||
-rw-r--r-- | ui/gtk/summary_dlg.c | 114 | ||||
-rw-r--r-- | ui/gtk/summary_dlg.h | 1 |
5 files changed, 124 insertions, 15 deletions
diff --git a/ui/gtk/edit_packet_comment_dlg.c b/ui/gtk/edit_packet_comment_dlg.c index affc649ae3..ca0cd7cc1d 100644 --- a/ui/gtk/edit_packet_comment_dlg.c +++ b/ui/gtk/edit_packet_comment_dlg.c @@ -46,6 +46,7 @@ #include "ui/gtk/packet_list.h" #include "ui/gtk/edit_packet_comment_dlg.h" #include "ui/gtk/old-gtk-compat.h" +#include "ui/gtk/summary_dlg.h" static GtkWidget *edit_or_add_pkt_comment_dlg = NULL; static GtkWidget *edit_or_add_capture_comment_dlg = NULL; @@ -180,8 +181,8 @@ show_packet_comment_summary_dlg (GtkAction *action _U_, gpointer data _U_) GtkWidget *ok_bt, *cancel_bt, *help_bt; GtkTextBuffer *buffer = NULL; - view_capture_and_pkt_comments_dlg = dlg_window_new ("View Capture and Packet Comments"); - gtk_widget_set_size_request (view_capture_and_pkt_comments_dlg, 500, 160); + view_capture_and_pkt_comments_dlg = dlg_window_new ("Comments Summary"); + gtk_widget_set_size_request (view_capture_and_pkt_comments_dlg, 700, 350); gtk_window_set_resizable (GTK_WINDOW (view_capture_and_pkt_comments_dlg), TRUE); gtk_container_set_border_width (GTK_CONTAINER (view_capture_and_pkt_comments_dlg), DLG_OUTER_MARGIN); @@ -201,9 +202,11 @@ show_packet_comment_summary_dlg (GtkAction *action _U_, gpointer data _U_) gtk_widget_show(scroll); gtk_box_pack_start(GTK_BOX (vbox), scroll, TRUE, TRUE, 0); - /* Get the all comments */ + /* Add capture summary information */ + summary_to_texbuff(buffer); + + /* Add all packet comments */ packet_list_return_all_comments(buffer); - /*g_warning("Fetched comment '%s'",opt_comment);*/ /* Button row. */ bbox = dlg_button_row_new (GTK_STOCK_OK, GTK_STOCK_CANCEL, GTK_STOCK_HELP, NULL); diff --git a/ui/gtk/main_menubar.c b/ui/gtk/main_menubar.c index 656511b652..791ed5d04c 100644 --- a/ui/gtk/main_menubar.c +++ b/ui/gtk/main_menubar.c @@ -4879,6 +4879,8 @@ set_menus_for_captured_packets(gboolean have_captured_packets) have_captured_packets); set_menu_sensitivity(ui_manager_main_menubar, "/Menubar/StatisticsMenu/Summary", have_captured_packets); + set_menu_sensitivity(ui_manager_main_menubar, "/Menubar/StatisticsMenu/ShowCommentsSummary", + have_captured_packets); set_menu_sensitivity(ui_manager_main_menubar, "/Menubar/StatisticsMenu/ProtocolHierarchy", have_captured_packets); } diff --git a/ui/gtk/packet_list.c b/ui/gtk/packet_list.c index b95d38744d..c80afc0609 100644 --- a/ui/gtk/packet_list.c +++ b/ui/gtk/packet_list.c @@ -1708,17 +1708,6 @@ packet_list_return_all_comments(GtkTextBuffer *buffer) gchar *buf_str; wtapng_section_t* shb_inf = NULL; - /* Get info from SHB */ - shb_inf = wtap_file_get_shb_info(cfile.wth); - - if(shb_inf != NULL){ - if(shb_inf->opt_comment){ - buf_str = g_strdup_printf("%s \n\n",shb_inf->opt_comment); - gtk_text_buffer_insert_at_cursor (buffer, buf_str, -1); - g_free(buf_str); - } - } - for (framenum = 1; framenum <= cfile.count ; framenum++) { fdata = frame_data_sequence_find(cfile.frames, framenum); if (fdata->opt_comment) { diff --git a/ui/gtk/summary_dlg.c b/ui/gtk/summary_dlg.c index e4512617ae..3722c4f456 100644 --- a/ui/gtk/summary_dlg.c +++ b/ui/gtk/summary_dlg.c @@ -659,3 +659,117 @@ summary_open_cb(GtkWidget *w _U_, gpointer d _U_) gtk_widget_show_all(summary_dlg); window_present(summary_dlg); } + +#define INDENT " " +void +summary_to_texbuff(GtkTextBuffer *buffer) +{ + summary_tally summary; + gchar string_buff[SUM_STR_MAX]; + gchar *buf_str; + unsigned int i; + unsigned int elapsed_time; + + /* initial computations */ + summary_fill_in(&cfile, &summary); +#ifdef HAVE_LIBPCAP + summary_fill_in_capture(&cfile, &global_capture_opts, &summary); +#endif + + /* Add Wireshark version here? TODO */ + + /* Info about file */ + g_snprintf(string_buff, SUM_STR_MAX, "File: \n"); + gtk_text_buffer_insert_at_cursor (buffer, string_buff, -1); + + /* Filename */ + g_snprintf(string_buff, SUM_STR_MAX, INDENT "Name: %s\n", summary.filename); + gtk_text_buffer_insert_at_cursor (buffer, string_buff, -1); + + /* length */ + g_snprintf(string_buff, SUM_STR_MAX, INDENT "Length: %" G_GINT64_MODIFIER "d bytes\n", + summary.file_length); + gtk_text_buffer_insert_at_cursor (buffer, string_buff, -1); + + /* format */ + g_snprintf(string_buff, SUM_STR_MAX, INDENT "Format: %s%s", + wtap_file_type_string(summary.file_type), + summary.iscompressed? " (gzip compressed)\n" : "\n"); + gtk_text_buffer_insert_at_cursor (buffer, string_buff, -1); + + /* encapsulation */ + if (summary.file_encap_type == WTAP_ENCAP_PER_PACKET) { + for (i = 0; i < summary.packet_encap_types->len; i++) { + g_snprintf(string_buff, SUM_STR_MAX, INDENT "Encapsulation: %s\n", + wtap_encap_string(g_array_index(summary.packet_encap_types, int, i))); + gtk_text_buffer_insert_at_cursor (buffer, string_buff, -1); + } + } else { + g_snprintf(string_buff, SUM_STR_MAX, INDENT "Encapsulation: %s\n", wtap_encap_string(summary.file_encap_type)); + gtk_text_buffer_insert_at_cursor (buffer, string_buff, -1); + } + if (summary.has_snap) { + /* snapshot length */ + g_snprintf(string_buff, SUM_STR_MAX, INDENT "Packet size limit: %u bytes\n", summary.snap); + gtk_text_buffer_insert_at_cursor (buffer, string_buff, -1); + } + + /* Add two empty lines */ + g_snprintf(string_buff, SUM_STR_MAX, "\n\n"); + gtk_text_buffer_insert_at_cursor (buffer, string_buff, -1); + + /* Time Section */ + if (summary.packet_count_ts == summary.packet_count && + summary.packet_count >= 1) { + /* Add heading Time */ + g_snprintf(string_buff, SUM_STR_MAX, "Time:\n"); + gtk_text_buffer_insert_at_cursor (buffer, string_buff, -1); + + /* start time */ + time_to_string(string_buff, SUM_STR_MAX, (time_t)summary.start_time); + g_snprintf(string_buff, SUM_STR_MAX, INDENT "First packet: %s\n",string_buff); + gtk_text_buffer_insert_at_cursor (buffer, string_buff, -1); + + /* stop time */ + time_to_string(string_buff, SUM_STR_MAX, (time_t)summary.stop_time); + g_snprintf(string_buff, SUM_STR_MAX, INDENT "Last packet: %s\n", string_buff); + gtk_text_buffer_insert_at_cursor (buffer, string_buff, -1); + + /* + * We must have at least two time-stamped packets for the elapsed time + * to be valid. + */ + if (summary.packet_count_ts >= 2) { + /* elapsed seconds */ + elapsed_time = (unsigned int)summary.elapsed_time; + if(elapsed_time/86400) { + g_snprintf(string_buff, SUM_STR_MAX, "%02u days %02u:%02u:%02u", + elapsed_time/86400, elapsed_time%86400/3600, elapsed_time%3600/60, elapsed_time%60); + } else { + g_snprintf(string_buff, SUM_STR_MAX, "%02u:%02u:%02u", + elapsed_time%86400/3600, elapsed_time%3600/60, elapsed_time%60); + } + g_snprintf(string_buff, SUM_STR_MAX, INDENT "Elapsed: %s\n", string_buff); + gtk_text_buffer_insert_at_cursor (buffer, string_buff, -1); + } + } + + /* Add two empty lines */ + g_snprintf(string_buff, SUM_STR_MAX, "\n\n"); + gtk_text_buffer_insert_at_cursor (buffer, string_buff, -1); + + g_snprintf(string_buff, SUM_STR_MAX, "Capture:\n"); + gtk_text_buffer_insert_at_cursor (buffer, string_buff, -1); + + /* Trace file comments from SHB */ + if(summary.opt_comment != NULL) { + buf_str = g_strdup_printf("%s", summary.opt_comment); + gtk_text_buffer_insert_at_cursor(buffer, buf_str, -1); + g_free(buf_str); + } + + + g_snprintf(string_buff, SUM_STR_MAX, "\n\n"); + gtk_text_buffer_insert_at_cursor (buffer, string_buff, -1); + +}
\ No newline at end of file diff --git a/ui/gtk/summary_dlg.h b/ui/gtk/summary_dlg.h index f39c4e21df..0b3e07b0d8 100644 --- a/ui/gtk/summary_dlg.h +++ b/ui/gtk/summary_dlg.h @@ -37,5 +37,6 @@ * @param data unused */ void summary_open_cb(GtkWidget *widget, gpointer data); +void summary_to_texbuff(GtkTextBuffer *buffer); #endif /* __SUMMARY_DLG_H__ */ |