forked from osmocom/wireshark
Make "finfo_selected" a member of a "capture_file" structure rather than
an independent global variable. svn path=/trunk/; revision=8524
This commit is contained in:
parent
88b1bc3fac
commit
dd628e00c7
3
cfile.h
3
cfile.h
|
@ -1,7 +1,7 @@
|
|||
/* cfile.h
|
||||
* capture_file definition & GUI-independent manipulation
|
||||
*
|
||||
* $Id: cfile.h,v 1.5 2003/09/15 22:16:07 guy Exp $
|
||||
* $Id: cfile.h,v 1.6 2003/09/24 00:47:36 guy Exp $
|
||||
*
|
||||
* Ethereal - Network traffic analyzer
|
||||
* By Gerald Combs <gerald@ethereal.com>
|
||||
|
@ -89,6 +89,7 @@ typedef struct _capture_file {
|
|||
column_info cinfo; /* Column formatting information */
|
||||
frame_data *current_frame; /* Frame data for current frame */
|
||||
epan_dissect_t *edt; /* Protocol dissection for currently selected packet */
|
||||
field_info *finfo_selected; /* Field info for currently selected field */
|
||||
FILE *print_fh; /* File we're printing to */
|
||||
struct ph_stats_s* pstats; /* accumulated stats (reset on redisplay in GUI)*/
|
||||
} capture_file;
|
||||
|
|
16
file.c
16
file.c
|
@ -1,7 +1,7 @@
|
|||
/* file.c
|
||||
* File I/O routines
|
||||
*
|
||||
* $Id: file.c,v 1.315 2003/09/19 04:52:15 guy Exp $
|
||||
* $Id: file.c,v 1.316 2003/09/24 00:47:36 guy Exp $
|
||||
*
|
||||
* Ethereal - Network traffic analyzer
|
||||
* By Gerald Combs <gerald@ethereal.com>
|
||||
|
@ -262,6 +262,10 @@ cf_close(capture_file *cf)
|
|||
cf->first_displayed = NULL;
|
||||
cf->last_displayed = NULL;
|
||||
|
||||
/* No frame selected, no field in that frame selected. */
|
||||
cf->current_frame = NULL;
|
||||
cf->finfo_selected = NULL;
|
||||
|
||||
/* Clear the packet list. */
|
||||
packet_list_freeze();
|
||||
packet_list_clear();
|
||||
|
@ -1153,7 +1157,9 @@ rescan_packets(capture_file *cf, const char *action, const char *action_item,
|
|||
/* The frame that was selected passed the filter; select it, make it
|
||||
the focus row, and make it visible. */
|
||||
packet_list_set_selected_row(selected_row);
|
||||
finfo_selected = NULL;
|
||||
|
||||
/* New dissection, so no field has been selected yet. */
|
||||
cf->finfo_selected = NULL;
|
||||
} else {
|
||||
/* The selected frame didn't pass the filter; make the first frame
|
||||
the current frame, and leave it unselected. */
|
||||
|
@ -2079,15 +2085,15 @@ unselect_packet(capture_file *cf)
|
|||
set_menus_for_selected_packet(FALSE);
|
||||
|
||||
/* No protocol tree means no selected field. */
|
||||
unselect_field();
|
||||
unselect_field(cf);
|
||||
}
|
||||
|
||||
/* Unset the selected protocol tree field, if any. */
|
||||
void
|
||||
unselect_field(void)
|
||||
unselect_field(capture_file *cf)
|
||||
{
|
||||
statusbar_pop_field_msg();
|
||||
finfo_selected = NULL;
|
||||
cf->finfo_selected = NULL;
|
||||
set_menus_for_selected_tree_row(FALSE);
|
||||
}
|
||||
|
||||
|
|
4
file.h
4
file.h
|
@ -1,7 +1,7 @@
|
|||
/* file.h
|
||||
* Definitions for file structures and routines
|
||||
*
|
||||
* $Id: file.h,v 1.107 2003/09/15 22:48:41 guy Exp $
|
||||
* $Id: file.h,v 1.108 2003/09/24 00:47:36 guy Exp $
|
||||
*
|
||||
* Ethereal - Network traffic analyzer
|
||||
* By Gerald Combs <gerald@ethereal.com>
|
||||
|
@ -72,7 +72,7 @@ gboolean goto_frame(capture_file *cf, guint fnumber);
|
|||
void select_packet(capture_file *, int);
|
||||
void unselect_packet(capture_file *);
|
||||
|
||||
void unselect_field(void);
|
||||
void unselect_field(capture_file *);
|
||||
|
||||
/*
|
||||
* Mark a particular frame in a particular capture.
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
/* globals.h
|
||||
* Global defines, etc.
|
||||
*
|
||||
* $Id: globals.h,v 1.30 2002/09/06 18:29:41 jmayer Exp $
|
||||
* $Id: globals.h,v 1.31 2003/09/24 00:47:36 guy Exp $
|
||||
*
|
||||
* Ethereal - Network traffic analyzer
|
||||
* By Gerald Combs <gerald@ethereal.com>
|
||||
|
@ -36,7 +36,6 @@ extern gchar *last_open_dir;
|
|||
#ifdef HAVE_LIBPCAP
|
||||
extern gboolean auto_scroll_live;
|
||||
#endif
|
||||
extern field_info *finfo_selected;
|
||||
|
||||
extern ts_type timestamp_type;
|
||||
|
||||
|
|
67
gtk/main.c
67
gtk/main.c
|
@ -1,6 +1,6 @@
|
|||
/* main.c
|
||||
*
|
||||
* $Id: main.c,v 1.316 2003/09/23 06:25:10 oabad Exp $
|
||||
* $Id: main.c,v 1.317 2003/09/24 00:47:37 guy Exp $
|
||||
*
|
||||
* Ethereal - Network traffic analyzer
|
||||
* By Gerald Combs <gerald@ethereal.com>
|
||||
|
@ -152,9 +152,6 @@ ts_type timestamp_type = RELATIVE;
|
|||
GtkStyle *item_style;
|
||||
#endif
|
||||
|
||||
/* Specifies the field currently selected in the GUI protocol tree */
|
||||
field_info *finfo_selected = NULL;
|
||||
|
||||
#ifdef WIN32
|
||||
static gboolean has_no_console; /* TRUE if app has no console */
|
||||
static gboolean console_was_created; /* TRUE if console was created */
|
||||
|
@ -260,14 +257,14 @@ set_fonts(PangoFontDescription *regular, PangoFontDescription *bold)
|
|||
void
|
||||
goto_framenum_cb(GtkWidget *w _U_, gpointer data _U_)
|
||||
{
|
||||
if (finfo_selected) {
|
||||
if (cfile.finfo_selected) {
|
||||
header_field_info *hfinfo;
|
||||
guint32 framenum;
|
||||
|
||||
hfinfo = finfo_selected->hfinfo;
|
||||
hfinfo = cfile.finfo_selected->hfinfo;
|
||||
g_assert(hfinfo);
|
||||
if (hfinfo->type == FT_FRAMENUM) {
|
||||
framenum = fvalue_get_integer(finfo_selected->value);
|
||||
framenum = fvalue_get_integer(cfile.finfo_selected->value);
|
||||
if (framenum != 0)
|
||||
goto_frame(&cfile, framenum);
|
||||
}
|
||||
|
@ -353,109 +350,109 @@ match_selected_cb_do(gpointer data, int action, gchar *text)
|
|||
void
|
||||
match_selected_cb_replace_ptree(GtkWidget *w, gpointer data)
|
||||
{
|
||||
if (finfo_selected)
|
||||
if (cfile.finfo_selected)
|
||||
match_selected_cb_do((data ? data : w),
|
||||
MATCH_SELECTED_REPLACE|MATCH_SELECTED_APPLY_NOW,
|
||||
proto_construct_dfilter_string(finfo_selected, cfile.edt));
|
||||
proto_construct_dfilter_string(cfile.finfo_selected, cfile.edt));
|
||||
}
|
||||
|
||||
void
|
||||
match_selected_cb_and_ptree(GtkWidget *w, gpointer data)
|
||||
{
|
||||
if (finfo_selected)
|
||||
if (cfile.finfo_selected)
|
||||
match_selected_cb_do((data ? data : w),
|
||||
MATCH_SELECTED_AND|MATCH_SELECTED_APPLY_NOW,
|
||||
proto_construct_dfilter_string(finfo_selected, cfile.edt));
|
||||
proto_construct_dfilter_string(cfile.finfo_selected, cfile.edt));
|
||||
}
|
||||
|
||||
void
|
||||
match_selected_cb_or_ptree(GtkWidget *w, gpointer data)
|
||||
{
|
||||
if (finfo_selected)
|
||||
if (cfile.finfo_selected)
|
||||
match_selected_cb_do((data ? data : w),
|
||||
MATCH_SELECTED_OR|MATCH_SELECTED_APPLY_NOW,
|
||||
proto_construct_dfilter_string(finfo_selected, cfile.edt));
|
||||
proto_construct_dfilter_string(cfile.finfo_selected, cfile.edt));
|
||||
}
|
||||
|
||||
void
|
||||
match_selected_cb_not_ptree(GtkWidget *w, gpointer data)
|
||||
{
|
||||
if (finfo_selected)
|
||||
if (cfile.finfo_selected)
|
||||
match_selected_cb_do((data ? data : w),
|
||||
MATCH_SELECTED_NOT|MATCH_SELECTED_APPLY_NOW,
|
||||
proto_construct_dfilter_string(finfo_selected, cfile.edt));
|
||||
proto_construct_dfilter_string(cfile.finfo_selected, cfile.edt));
|
||||
}
|
||||
|
||||
void
|
||||
match_selected_cb_and_ptree_not(GtkWidget *w, gpointer data)
|
||||
{
|
||||
if (finfo_selected)
|
||||
if (cfile.finfo_selected)
|
||||
match_selected_cb_do((data ? data : w),
|
||||
MATCH_SELECTED_AND_NOT|MATCH_SELECTED_APPLY_NOW,
|
||||
proto_construct_dfilter_string(finfo_selected, cfile.edt));
|
||||
proto_construct_dfilter_string(cfile.finfo_selected, cfile.edt));
|
||||
}
|
||||
|
||||
void
|
||||
match_selected_cb_or_ptree_not(GtkWidget *w, gpointer data)
|
||||
{
|
||||
if (finfo_selected)
|
||||
if (cfile.finfo_selected)
|
||||
match_selected_cb_do((data ? data : w),
|
||||
MATCH_SELECTED_OR_NOT,
|
||||
proto_construct_dfilter_string(finfo_selected, cfile.edt));
|
||||
proto_construct_dfilter_string(cfile.finfo_selected, cfile.edt));
|
||||
}
|
||||
|
||||
void
|
||||
prepare_selected_cb_replace_ptree(GtkWidget *w, gpointer data)
|
||||
{
|
||||
if (finfo_selected)
|
||||
if (cfile.finfo_selected)
|
||||
match_selected_cb_do((data ? data : w),
|
||||
MATCH_SELECTED_REPLACE,
|
||||
proto_construct_dfilter_string(finfo_selected, cfile.edt));
|
||||
proto_construct_dfilter_string(cfile.finfo_selected, cfile.edt));
|
||||
}
|
||||
|
||||
void
|
||||
prepare_selected_cb_and_ptree(GtkWidget *w, gpointer data)
|
||||
{
|
||||
if (finfo_selected)
|
||||
if (cfile.finfo_selected)
|
||||
match_selected_cb_do((data ? data : w),
|
||||
MATCH_SELECTED_AND,
|
||||
proto_construct_dfilter_string(finfo_selected, cfile.edt));
|
||||
proto_construct_dfilter_string(cfile.finfo_selected, cfile.edt));
|
||||
}
|
||||
|
||||
void
|
||||
prepare_selected_cb_or_ptree(GtkWidget *w, gpointer data)
|
||||
{
|
||||
if (finfo_selected)
|
||||
if (cfile.finfo_selected)
|
||||
match_selected_cb_do((data ? data : w),
|
||||
MATCH_SELECTED_OR,
|
||||
proto_construct_dfilter_string(finfo_selected, cfile.edt));
|
||||
proto_construct_dfilter_string(cfile.finfo_selected, cfile.edt));
|
||||
}
|
||||
|
||||
void
|
||||
prepare_selected_cb_not_ptree(GtkWidget *w, gpointer data)
|
||||
{
|
||||
if (finfo_selected)
|
||||
if (cfile.finfo_selected)
|
||||
match_selected_cb_do((data ? data : w),
|
||||
MATCH_SELECTED_NOT,
|
||||
proto_construct_dfilter_string(finfo_selected, cfile.edt));
|
||||
proto_construct_dfilter_string(cfile.finfo_selected, cfile.edt));
|
||||
}
|
||||
|
||||
void
|
||||
prepare_selected_cb_and_ptree_not(GtkWidget *w, gpointer data)
|
||||
{
|
||||
if (finfo_selected)
|
||||
if (cfile.finfo_selected)
|
||||
match_selected_cb_do((data ? data : w),
|
||||
MATCH_SELECTED_AND_NOT,
|
||||
proto_construct_dfilter_string(finfo_selected, cfile.edt));
|
||||
proto_construct_dfilter_string(cfile.finfo_selected, cfile.edt));
|
||||
}
|
||||
|
||||
void
|
||||
prepare_selected_cb_or_ptree_not(GtkWidget *w, gpointer data)
|
||||
{
|
||||
if (finfo_selected)
|
||||
if (cfile.finfo_selected)
|
||||
match_selected_cb_do((data ? data : w),
|
||||
MATCH_SELECTED_OR_NOT,
|
||||
proto_construct_dfilter_string(finfo_selected, cfile.edt));
|
||||
proto_construct_dfilter_string(cfile.finfo_selected, cfile.edt));
|
||||
}
|
||||
|
||||
static gchar *
|
||||
|
@ -905,7 +902,7 @@ tree_view_selection_changed_cb(GtkTreeSelection *sel, gpointer user_data _U_)
|
|||
if (byte_data == NULL)
|
||||
return; /* none */
|
||||
|
||||
unselect_field();
|
||||
unselect_field(&cfile);
|
||||
packet_hex_print(GTK_TEXT_VIEW(byte_view), byte_data,
|
||||
cfile.current_frame, NULL, byte_len);
|
||||
return;
|
||||
|
@ -923,7 +920,7 @@ tree_view_selection_changed_cb(GtkTreeSelection *sel, gpointer user_data _U_)
|
|||
byte_data = get_byte_view_data_and_length(byte_view, &byte_len);
|
||||
g_assert(byte_data != NULL);
|
||||
|
||||
finfo_selected = finfo;
|
||||
cfile.finfo_selected = finfo;
|
||||
set_menus_for_selected_tree_row(TRUE);
|
||||
|
||||
if (finfo->hfinfo) {
|
||||
|
@ -1004,7 +1001,7 @@ tree_view_unselect_row_cb(GtkCTree *ctree _U_, GList *node _U_, gint column _U_,
|
|||
if (data == NULL)
|
||||
return; /* none */
|
||||
|
||||
unselect_field();
|
||||
unselect_field(&cfile);
|
||||
packet_hex_print(GTK_TEXT(byte_view), data, cfile.current_frame,
|
||||
NULL, len);
|
||||
}
|
||||
|
@ -1060,7 +1057,7 @@ set_plist_sel_browse(gboolean val)
|
|||
return;
|
||||
}
|
||||
|
||||
if (finfo_selected)
|
||||
if (cfile.finfo_selected)
|
||||
unselect_packet(&cfile);
|
||||
|
||||
mode = new_mode;
|
||||
|
|
14
gtk/menu.c
14
gtk/menu.c
|
@ -1,7 +1,7 @@
|
|||
/* menu.c
|
||||
* Menu routines
|
||||
*
|
||||
* $Id: menu.c,v 1.98 2003/09/22 09:08:42 sahlberg Exp $
|
||||
* $Id: menu.c,v 1.99 2003/09/24 00:47:37 guy Exp $
|
||||
*
|
||||
* Ethereal - Network traffic analyzer
|
||||
* By Gerald Combs <gerald@ethereal.com>
|
||||
|
@ -979,8 +979,8 @@ set_menus_for_selected_tree_row(gboolean have_selected_tree_row)
|
|||
{
|
||||
gboolean properties = FALSE;
|
||||
|
||||
if (finfo_selected) {
|
||||
header_field_info *hfinfo = finfo_selected->hfinfo;
|
||||
if (cfile.finfo_selected) {
|
||||
header_field_info *hfinfo = cfile.finfo_selected->hfinfo;
|
||||
if (hfinfo->parent == -1) {
|
||||
properties = prefs_is_registered_protocol(hfinfo->abbrev);
|
||||
} else {
|
||||
|
@ -998,13 +998,13 @@ set_menus_for_selected_tree_row(gboolean have_selected_tree_row)
|
|||
"/Go To Corresponding Frame", FALSE);
|
||||
}
|
||||
set_menu_sensitivity(main_menu_factory, "/Display/Match",
|
||||
proto_can_match_selected(finfo_selected, cfile.edt));
|
||||
proto_can_match_selected(cfile.finfo_selected, cfile.edt));
|
||||
set_menu_sensitivity(tree_view_menu_factory, "/Match",
|
||||
proto_can_match_selected(finfo_selected, cfile.edt));
|
||||
proto_can_match_selected(cfile.finfo_selected, cfile.edt));
|
||||
set_menu_sensitivity(main_menu_factory, "/Display/Prepare",
|
||||
proto_can_match_selected(finfo_selected, cfile.edt));
|
||||
proto_can_match_selected(cfile.finfo_selected, cfile.edt));
|
||||
set_menu_sensitivity(tree_view_menu_factory, "/Prepare",
|
||||
proto_can_match_selected(finfo_selected, cfile.edt));
|
||||
proto_can_match_selected(cfile.finfo_selected, cfile.edt));
|
||||
} else {
|
||||
set_menu_sensitivity(main_menu_factory, "/Display/Match", FALSE);
|
||||
set_menu_sensitivity(tree_view_menu_factory, "/Match", FALSE);
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
/* prefs_dlg.c
|
||||
* Routines for handling preferences
|
||||
*
|
||||
* $Id: prefs_dlg.c,v 1.60 2003/09/01 01:49:20 gerald Exp $
|
||||
* $Id: prefs_dlg.c,v 1.61 2003/09/24 00:47:37 guy Exp $
|
||||
*
|
||||
* Ethereal - Network traffic analyzer
|
||||
* By Gerald Combs <gerald@ethereal.com>
|
||||
|
@ -1279,8 +1279,8 @@ properties_cb(GtkWidget *w, gpointer dummy)
|
|||
const gchar *title = NULL;
|
||||
struct properties_data p;
|
||||
|
||||
if (finfo_selected) {
|
||||
header_field_info *hfinfo = finfo_selected->hfinfo;
|
||||
if (cfile.finfo_selected) {
|
||||
header_field_info *hfinfo = cfile.finfo_selected->hfinfo;
|
||||
if (hfinfo->parent == -1) {
|
||||
title = prefs_get_title_by_name(hfinfo->abbrev);
|
||||
} else {
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
/* proto_draw.c
|
||||
* Routines for GTK+ packet display
|
||||
*
|
||||
* $Id: proto_draw.c,v 1.61 2002/11/11 15:39:06 oabad Exp $
|
||||
* $Id: proto_draw.c,v 1.62 2003/09/24 00:47:37 guy Exp $
|
||||
*
|
||||
* Ethereal - Network traffic analyzer
|
||||
* By Gerald Combs <gerald@ethereal.com>
|
||||
|
@ -151,7 +151,7 @@ void
|
|||
redraw_hex_dump_all(void)
|
||||
{
|
||||
if (cfile.current_frame != NULL)
|
||||
redraw_hex_dump( byte_nb_ptr, cfile.current_frame, finfo_selected);
|
||||
redraw_hex_dump( byte_nb_ptr, cfile.current_frame, cfile.finfo_selected);
|
||||
|
||||
redraw_hex_dump_packet_wins();
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue