From f56d16abab4e4dff05f3601886be8d09a340f924 Mon Sep 17 00:00:00 2001 From: Guy Harris Date: Mon, 15 Sep 2003 22:16:08 +0000 Subject: Add a routine to return the display name for a "capture_file" structure, rather than constructing that name when a capture file is opened and putting a pointer to it in that structure. svn path=/trunk/; revision=8476 --- cfile.h | 3 +- file.c | 67 +++++++++++++++++++++++++------------------- file.h | 3 +- gtk/dcerpc_stat.c | 13 ++------- gtk/endpoint_talkers_table.c | 13 ++------- gtk/fc_stat.c | 13 ++------- gtk/io_stat.c | 13 ++------- gtk/mgcp_stat.c | 13 ++------- gtk/rpc_stat.c | 13 ++------- gtk/smb_stat.c | 13 ++------- 10 files changed, 62 insertions(+), 102 deletions(-) diff --git a/cfile.h b/cfile.h index b05b33a3b8..d12a2bd1f4 100644 --- a/cfile.h +++ b/cfile.h @@ -1,7 +1,7 @@ /* cfile.h * capture_file definition & GUI-independent manipulation * - * $Id: cfile.h,v 1.4 2003/09/15 20:37:35 guy Exp $ + * $Id: cfile.h,v 1.5 2003/09/15 22:16:07 guy Exp $ * * Ethereal - Network traffic analyzer * By Gerald Combs @@ -47,7 +47,6 @@ typedef struct _capture_file { gchar *filename; /* Name of capture file */ gboolean is_tempfile; /* Is capture file a temporary file? */ gboolean user_saved;/* If capture file is temporary, has it been saved by user yet? */ - gchar *displayname; /* Name used when displaying */ long f_len; /* Length of capture file */ guint16 cd_t; /* File type of capture file */ int lnk_t; /* Link-layer type with which to save capture */ diff --git a/file.c b/file.c index b2607d65e8..1b0e3e62f4 100644 --- a/file.c +++ b/file.c @@ -1,7 +1,7 @@ /* file.c * File I/O routines * - * $Id: file.c,v 1.311 2003/09/15 20:37:36 guy Exp $ + * $Id: file.c,v 1.312 2003/09/15 22:16:07 guy Exp $ * * Ethereal - Network traffic analyzer * By Gerald Combs @@ -151,7 +151,6 @@ open_cap_file(char *fname, gboolean is_tempfile, capture_file *cf) int err; int fd; struct stat cf_stat; - gchar *displayname; wth = wtap_open_offline(fname, &err, TRUE); if (wth == NULL) @@ -190,17 +189,6 @@ open_cap_file(char *fname, gboolean is_tempfile, capture_file *cf) /* If it's a temporary capture buffer file, mark it as not saved. */ cf->user_saved = !is_tempfile; - /* Set the name we use in various displays */ - if (!cf->is_tempfile) { - /* Get the last component of the file name, and use that. */ - displayname = get_basename(cf->filename); - } else { - /* The file we read is a temporary file from a live capture; - we don't mention its name. */ - displayname = ""; - } - cf->displayname = g_strdup(displayname); - cf->cd_t = wtap_file_type(cf->wth); cf->count = 0; cf->marked_count = 0; @@ -257,10 +245,6 @@ close_cap_file(capture_file *cf) g_free(cf->filename); cf->filename = NULL; } - if (cf->displayname != NULL) { - g_free(cf->displayname); - cf->displayname = NULL; - } /* ...which means we have nothing to save. */ cf->user_saved = FALSE; @@ -308,6 +292,7 @@ close_cap_file(capture_file *cf) static void set_display_filename(capture_file *cf) { + gchar *name_ptr; size_t msg_len; static const gchar done_fmt_nodrops[] = " File: %s"; static const gchar done_fmt_drops[] = " File: %s Drops: %u"; @@ -315,21 +300,22 @@ set_display_filename(capture_file *cf) gchar *win_name_fmt = "%s - Ethereal"; gchar *win_name; + name_ptr = cf_get_display_name(cf); if (cf->drops_known) { - msg_len = strlen(cf->displayname) + strlen(done_fmt_drops) + 64; + msg_len = strlen(name_ptr) + strlen(done_fmt_drops) + 64; done_msg = g_malloc(msg_len); - snprintf(done_msg, msg_len, done_fmt_drops, cf->displayname, cf->drops); + snprintf(done_msg, msg_len, done_fmt_drops, name_ptr, cf->drops); } else { - msg_len = strlen(cf->displayname) + strlen(done_fmt_nodrops); + msg_len = strlen(name_ptr) + strlen(done_fmt_nodrops); done_msg = g_malloc(msg_len); - snprintf(done_msg, msg_len, done_fmt_nodrops, cf->displayname); + snprintf(done_msg, msg_len, done_fmt_nodrops, name_ptr); } statusbar_push_file_msg(done_msg); g_free(done_msg); - msg_len = strlen(cf->displayname) + strlen(win_name_fmt) + 1; + msg_len = strlen(name_ptr) + strlen(win_name_fmt) + 1; win_name = g_malloc(msg_len); - snprintf(win_name, msg_len, win_name_fmt, cf->displayname); + snprintf(win_name, msg_len, win_name_fmt, name_ptr); set_main_window_name(win_name); g_free(win_name); } @@ -337,7 +323,7 @@ set_display_filename(capture_file *cf) read_status_t read_cap_file(capture_file *cf, int *err) { - gchar *load_msg, *load_fmt = "%s"; + gchar *name_ptr, *load_msg, *load_fmt = "%s"; size_t msg_len; char *errmsg; char errmsg_errno[1024+1]; @@ -359,10 +345,11 @@ read_cap_file(capture_file *cf, int *err) cul_bytes=0; reset_tap_listeners(); + name_ptr = get_basename(cf->filename); - msg_len = strlen(cf->displayname) + strlen(load_fmt) + 2; + msg_len = strlen(name_ptr) + strlen(load_fmt) + 2; load_msg = g_malloc(msg_len); - snprintf(load_msg, msg_len, load_fmt, cf->displayname); + snprintf(load_msg, msg_len, load_fmt, name_ptr); statusbar_push_file_msg(load_msg); /* Update the progress bar when it gets to this value. */ @@ -658,6 +645,27 @@ finish_tail_cap_file(capture_file *cf, int *err) } #endif /* HAVE_LIBPCAP */ +gchar * +cf_get_display_name(capture_file *cf) +{ + gchar *displayname; + + /* Return a name to use in displays */ + if (!cf->is_tempfile && cf->filename != NULL) { + /* Get the last component of the file name, and use that. */ + displayname = get_basename(cf->filename); + } else { + /* The file we read is a temporary file from a live capture; + we don't mention its name. + + XXX - "cf->filename" shouldn't be null here, but this might + be called from some tap display routines, and those can + be called before the file is opened, which is arguably a bug. */ + displayname = ""; + } + return displayname; +} + typedef struct { color_filter_t *colorf; epan_dissect_t *edt; @@ -2155,7 +2163,7 @@ save_cap_file(char *fname, capture_file *cf, gboolean save_filtered, gboolean save_marked, guint save_format) { gchar *from_filename; - gchar *save_msg, *save_fmt = " Saving: %s..."; + gchar *name_ptr, *save_msg, *save_fmt = " Saving: %s..."; size_t msg_len; int err; gboolean do_copy; @@ -2166,9 +2174,10 @@ save_cap_file(char *fname, capture_file *cf, gboolean save_filtered, guint8 pd[65536]; struct stat infile, outfile; - msg_len = strlen(cf->displayname) + strlen(save_fmt) + 2; + name_ptr = get_basename(fname); + msg_len = strlen(name_ptr) + strlen(save_fmt) + 2; save_msg = g_malloc(msg_len); - snprintf(save_msg, msg_len, save_fmt, cf->displayname); + snprintf(save_msg, msg_len, save_fmt, name_ptr); statusbar_push_file_msg(save_msg); g_free(save_msg); diff --git a/file.h b/file.h index 704e051261..4343bfa965 100644 --- a/file.h +++ b/file.h @@ -1,7 +1,7 @@ /* file.h * Definitions for file structures and routines * - * $Id: file.h,v 1.105 2003/09/12 02:48:20 sahlberg Exp $ + * $Id: file.h,v 1.106 2003/09/15 22:16:08 guy Exp $ * * Ethereal - Network traffic analyzer * By Gerald Combs @@ -49,6 +49,7 @@ read_status_t continue_tail_cap_file(capture_file *, int, int *); read_status_t finish_tail_cap_file(capture_file *, int *); /* size_t read_frame_header(capture_file *); */ gboolean save_cap_file(char *, capture_file *, gboolean, gboolean, guint); +gchar *cf_get_display_name(capture_file *); int filter_packets(capture_file *cf, gchar *dfilter); void reftime_packets(capture_file *); diff --git a/gtk/dcerpc_stat.c b/gtk/dcerpc_stat.c index 60e88d1967..1245732a26 100644 --- a/gtk/dcerpc_stat.c +++ b/gtk/dcerpc_stat.c @@ -1,7 +1,7 @@ /* dcerpc_stat.c * dcerpc_stat 2002 Ronnie Sahlberg * - * $Id: dcerpc_stat.c,v 1.19 2003/09/15 20:37:36 guy Exp $ + * $Id: dcerpc_stat.c,v 1.20 2003/09/15 22:16:08 guy Exp $ * * Ethereal - Network traffic analyzer * By Gerald Combs @@ -37,7 +37,6 @@ #include #include "menu.h" #include "epan/packet_info.h" -#include "epan/filesystem.h" #include "simple_dialog.h" #include "dlg_utils.h" #include "ui_util.h" @@ -88,10 +87,7 @@ dcerpcstat_reset(rpcstat_t *rs) char title_string[256]; reset_srt_table_data(&rs->srt_table); - if (cfile.displayname) - snprintf(title_string, 255, "DCE-RPC Service Response Time statistics for %s version %d.%d : %s", rs->prog, rs->ver&0xff, rs->ver>>8, cfile.displayname); - else - snprintf(title_string, 255, "DCE-RPC Service Response Time statistics for %s version %d.%d", rs->prog, rs->ver&0xff, rs->ver>>8); + snprintf(title_string, 255, "DCE-RPC Service Response Time statistics for %s version %d.%d : %s", rs->prog, rs->ver&0xff, rs->ver>>8, cf_get_display_name(&cfile)); gtk_window_set_title(GTK_WINDOW(rs->win), title_string); } @@ -215,10 +211,7 @@ gtk_dcerpcstat_init(char *optarg) rs->win=gtk_window_new(GTK_WINDOW_TOPLEVEL); gtk_window_set_default_size(GTK_WINDOW(rs->win), 550, 400); - if (cfile.displayname) - snprintf(title_string, 255, "DCE-RPC Service Response Time statistics for %s version %d.%d : %s", rs->prog, rs->ver&0xff, rs->ver>>8, cfile.displayname); - else - snprintf(title_string, 255, "DCE-RPC Service Response Time statistics for %s version %d.%d", rs->prog, rs->ver&0xff, rs->ver>>8); + snprintf(title_string, 255, "DCE-RPC Service Response Time statistics for %s version %d.%d : %s", rs->prog, rs->ver&0xff, rs->ver>>8, cf_get_display_name(&cfile)); gtk_window_set_title(GTK_WINDOW(rs->win), title_string); SIGNAL_CONNECT(rs->win, "destroy", win_destroy_cb, rs); diff --git a/gtk/endpoint_talkers_table.c b/gtk/endpoint_talkers_table.c index 39e3976006..b1839d8226 100644 --- a/gtk/endpoint_talkers_table.c +++ b/gtk/endpoint_talkers_table.c @@ -4,7 +4,7 @@ * endpoint_talkers_table 2003 Ronnie Sahlberg * Helper routines common to all endpoint talkers tap. * - * $Id: endpoint_talkers_table.c,v 1.18 2003/09/15 20:37:36 guy Exp $ + * $Id: endpoint_talkers_table.c,v 1.19 2003/09/15 22:16:08 guy Exp $ * * Ethereal - Network traffic analyzer * By Gerald Combs @@ -36,7 +36,6 @@ #include #include "compat_macros.h" #include "epan/packet_info.h" -#include "epan/filesystem.h" #include "epan/to_str.h" #include "endpoint_talkers_table.h" #include "image/clist_ascend.xpm" @@ -206,10 +205,7 @@ reset_ett_table_data(endpoints_table *et) guint32 i; char title[256]; - if (cfile.displayname) - snprintf(title, 255, "%s Conversations: %s", et->name, cfile.displayname); - else - snprintf(title, 255, "%s Conversations", et->name); + snprintf(title, 255, "%s Conversations: %s", et->name, cf_get_display_name(&cfile)); gtk_window_set_title(GTK_WINDOW(et->win), title); /* remove all entries from the clist */ @@ -884,10 +880,7 @@ init_ett_table(gboolean hide_ports, char *table_name, char *tap_name, char *filt talkers->name=table_name; talkers->win=gtk_window_new(GTK_WINDOW_TOPLEVEL); gtk_window_set_default_size(GTK_WINDOW(talkers->win), 750, 400); - if (cfile.displayname) - snprintf(title, 255, "%s Conversations: %s", table_name, cfile.displayname); - else - snprintf(title, 255, "%s Conversations", table_name); + snprintf(title, 255, "%s Conversations: %s", table_name, cf_get_display_name(&cfile)); gtk_window_set_title(GTK_WINDOW(talkers->win), title); SIGNAL_CONNECT(talkers->win, "destroy", ett_win_destroy_cb, talkers); diff --git a/gtk/fc_stat.c b/gtk/fc_stat.c index b892483a80..37fce3ad07 100644 --- a/gtk/fc_stat.c +++ b/gtk/fc_stat.c @@ -1,7 +1,7 @@ /* fc_stat.c * fc_stat 2003 Ronnie Sahlberg * - * $Id: fc_stat.c,v 1.7 2003/09/15 20:37:36 guy Exp $ + * $Id: fc_stat.c,v 1.8 2003/09/15 22:16:08 guy Exp $ * * Ethereal - Network traffic analyzer * By Gerald Combs @@ -38,7 +38,6 @@ #include "../epan/packet_info.h" #include "../tap.h" #include "../epan/value_string.h" -#include "../epan/filesystem.h" #include "../packet-fc.h" #include "../register.h" #include "../timestats.h" @@ -65,10 +64,7 @@ fcstat_reset(void *pfc) char title[256]; reset_srt_table_data(&fc->fc_srt_table); - if (cfile.displayname) - snprintf(title, 255, "Fibre Channel Service Response Time statistics: %s", cfile.displayname); - else - snprintf(title, 255, "Fibre Channel Service Response Time statistics"); + snprintf(title, 255, "Fibre Channel Service Response Time statistics: %s", cf_get_display_name(&cfile)); gtk_window_set_title(GTK_WINDOW(fc->win), title); } @@ -141,10 +137,7 @@ gtk_fcstat_init(char *optarg) fc->win=gtk_window_new(GTK_WINDOW_TOPLEVEL); gtk_window_set_default_size(GTK_WINDOW(fc->win), 550, 400); - if (cfile.displayname) - snprintf(title, 255, "Fibre Channel Service Response Time statistics: %s", cfile.displayname); - else - snprintf(title, 255, "Fibre Channel Service Response Time statistics"); + snprintf(title, 255, "Fibre Channel Service Response Time statistics: %s", cf_get_display_name(&cfile)); gtk_window_set_title(GTK_WINDOW(fc->win), title); SIGNAL_CONNECT(fc->win, "destroy", win_destroy_cb, fc); diff --git a/gtk/io_stat.c b/gtk/io_stat.c index 6cf22cc6ad..2a0d3eec83 100644 --- a/gtk/io_stat.c +++ b/gtk/io_stat.c @@ -1,7 +1,7 @@ /* io_stat.c * io_stat 2002 Ronnie Sahlberg * - * $Id: io_stat.c,v 1.25 2003/09/15 20:37:36 guy Exp $ + * $Id: io_stat.c,v 1.26 2003/09/15 22:16:08 guy Exp $ * * Ethereal - Network traffic analyzer * By Gerald Combs @@ -42,7 +42,6 @@ #include "menu.h" #include "epan/epan_dissect.h" #include "epan/packet_info.h" -#include "epan/filesystem.h" #include "../tap.h" #include "../register.h" #include "simple_dialog.h" @@ -224,10 +223,7 @@ gtk_iostat_reset(void *g) gio->io->last_interval=0xffffffff; gio->io->max_interval=0; - if (cfile.displayname) - snprintf(title, 255, "IO-Stat: %s", cfile.displayname); - else - snprintf(title, 255, "IO-Stat"); + snprintf(title, 255, "IO-Stat: %s", cf_get_display_name(&cfile)); gtk_window_set_title(GTK_WINDOW(gio->io->window), title); } @@ -1646,10 +1642,7 @@ init_io_stat_window(io_stat_t *io) create_ctrl_area(io, hbox); gtk_widget_show(io->window); - if (cfile.displayname) - snprintf(title, 255, "IO-Stat: %s", cfile.displayname); - else - snprintf(title, 255, "IO-Stat"); + snprintf(title, 255, "IO-Stat: %s", cf_get_display_name(&cfile)); gtk_window_set_title(GTK_WINDOW(io->window), title); } diff --git a/gtk/mgcp_stat.c b/gtk/mgcp_stat.c index 2ab53f7033..69eaa85a68 100644 --- a/gtk/mgcp_stat.c +++ b/gtk/mgcp_stat.c @@ -2,7 +2,7 @@ * mgcp-statistics for ethereal * Copyright 2003 Lars Roland * - * $Id: mgcp_stat.c,v 1.11 2003/09/15 20:37:37 guy Exp $ + * $Id: mgcp_stat.c,v 1.12 2003/09/15 22:16:08 guy Exp $ * * Ethereal - Network traffic analyzer * By Gerald Combs @@ -37,7 +37,6 @@ #include #include "menu.h" #include "../epan/packet_info.h" -#include "../epan/filesystem.h" #include "../tap.h" #include "../epan/value_string.h" #include "../register.h" @@ -110,10 +109,7 @@ mgcpstat_reset(void *pms) ms->req_dup_num=0; ms->rsp_dup_num=0; - if (cfile.displayname) - snprintf(title, 255, "MGCP SRT Statistics: %s", cfile.displayname); - else - snprintf(title, 255, "MGCP SRT Statistics"); + snprintf(title, 255, "MGCP SRT Statistics: %s", cf_get_display_name(&cfile)); if (! dlg) dlg=gtk_window_new(GTK_WINDOW_TOPLEVEL); gtk_window_set_title(GTK_WINDOW(dlg), title); @@ -350,10 +346,7 @@ gtk_mgcpstat_cb(GtkWidget *w _U_, gpointer d _U_) } dlg=gtk_window_new(GTK_WINDOW_TOPLEVEL); - if (cfile.displayname) - snprintf(title, 255, "MGCP SRT Statistics: %s", cfile.displayname); - else - snprintf(title, 255, "MGCP SRT Statistics"); + snprintf(title, 255, "MGCP SRT Statistics: %s", cf_get_display_name(&cfile)); gtk_window_set_title(GTK_WINDOW(dlg), title); SIGNAL_CONNECT(dlg, "destroy", dlg_destroy_cb, NULL); dlg_box=gtk_vbox_new(FALSE, 0); diff --git a/gtk/rpc_stat.c b/gtk/rpc_stat.c index c4ecf36fbf..7e7024967c 100644 --- a/gtk/rpc_stat.c +++ b/gtk/rpc_stat.c @@ -1,7 +1,7 @@ /* rpc_stat.c * rpc_stat 2002 Ronnie Sahlberg * - * $Id: rpc_stat.c,v 1.18 2003/09/15 20:37:37 guy Exp $ + * $Id: rpc_stat.c,v 1.19 2003/09/15 22:16:08 guy Exp $ * * Ethereal - Network traffic analyzer * By Gerald Combs @@ -35,7 +35,6 @@ #include #include "menu.h" #include "epan/packet_info.h" -#include "epan/filesystem.h" #include "simple_dialog.h" #include "tap.h" #include "../register.h" @@ -66,10 +65,7 @@ rpcstat_reset(rpcstat_t *rs) reset_srt_table_data(&rs->srt_table); - if (cfile.displayname) - snprintf(title_string, 256, "ONC-RPC Service Response Time statistics for %s version %d: %s", rs->prog, rs->version, cfile.displayname); - else - snprintf(title_string, 256, "ONC-RPC Service Response Time statistics for %s version %d", rs->prog, rs->version); + snprintf(title_string, 256, "ONC-RPC Service Response Time statistics for %s version %d: %s", rs->prog, rs->version, cf_get_display_name(&cfile)); gtk_window_set_title(GTK_WINDOW(rs->win), title_string); } @@ -219,10 +215,7 @@ gtk_rpcstat_init(char *optarg) rs->win=gtk_window_new(GTK_WINDOW_TOPLEVEL); gtk_window_set_default_size(GTK_WINDOW(rs->win), 550, 400); - if (cfile.displayname) - snprintf(title_string, 256, "ONC-RPC Service Response Time statistics for %s version %d: %s", rs->prog, rs->version, cfile.displayname); - else - snprintf(title_string, 256, "ONC-RPC Service Response Time statistics for %s version %d", rs->prog, rs->version); + snprintf(title_string, 256, "ONC-RPC Service Response Time statistics for %s version %d: %s", rs->prog, rs->version, cf_get_display_name(&cfile)); gtk_window_set_title(GTK_WINDOW(rs->win), title_string); SIGNAL_CONNECT(rs->win, "destroy", win_destroy_cb, rs); diff --git a/gtk/smb_stat.c b/gtk/smb_stat.c index e37ac0d53c..3a7357981a 100644 --- a/gtk/smb_stat.c +++ b/gtk/smb_stat.c @@ -1,7 +1,7 @@ /* smb_stat.c * smb_stat 2003 Ronnie Sahlberg * - * $Id: smb_stat.c,v 1.15 2003/09/15 20:37:37 guy Exp $ + * $Id: smb_stat.c,v 1.16 2003/09/15 22:16:08 guy Exp $ * * Ethereal - Network traffic analyzer * By Gerald Combs @@ -36,7 +36,6 @@ #include #include "menu.h" #include "../epan/packet_info.h" -#include "../epan/filesystem.h" #include "../tap.h" #include "../epan/value_string.h" #include "../smb.h" @@ -69,10 +68,7 @@ smbstat_reset(void *pss) reset_srt_table_data(&ss->smb_srt_table); reset_srt_table_data(&ss->trans2_srt_table); reset_srt_table_data(&ss->nt_trans_srt_table); - if (cfile.displayname) - snprintf(title, 255, "SMB Service Response Time statistics: %s", cfile.displayname); - else - snprintf(title, 255, "SMB Service Response Time statistics"); + snprintf(title, 255, "SMB Service Response Time statistics: %s", cf_get_display_name(&cfile)); gtk_window_set_title(GTK_WINDOW(ss->win), title); } @@ -159,10 +155,7 @@ gtk_smbstat_init(char *optarg) ss->win=gtk_window_new(GTK_WINDOW_TOPLEVEL); gtk_window_set_default_size(GTK_WINDOW(ss->win), 550, 600); - if (cfile.displayname) - snprintf(title, 255, "SMB Service Response Time statistics: %s", cfile.displayname); - else - snprintf(title, 255, "SMB Service Response Time statistics"); + snprintf(title, 255, "SMB Service Response Time statistics: %s", cf_get_display_name(&cfile)); gtk_window_set_title(GTK_WINDOW(ss->win), title); SIGNAL_CONNECT(ss->win, "destroy", win_destroy_cb, ss); -- cgit v1.2.1