diff options
Diffstat (limited to 'gtk')
-rw-r--r-- | gtk/color_dlg.c | 10 | ||||
-rw-r--r-- | gtk/colors.c | 14 | ||||
-rw-r--r-- | gtk/colors.h | 6 | ||||
-rw-r--r-- | gtk/dfilter_expr_dlg.c | 94 | ||||
-rw-r--r-- | gtk/file_dlg.c | 8 | ||||
-rw-r--r-- | gtk/find_dlg.c | 8 | ||||
-rw-r--r-- | gtk/help_dlg.c | 4 | ||||
-rw-r--r-- | gtk/main.c | 190 | ||||
-rw-r--r-- | gtk/packet_win.c | 3 |
9 files changed, 37 insertions, 300 deletions
diff --git a/gtk/color_dlg.c b/gtk/color_dlg.c index 672c5cbb2f..7b06dca3bb 100644 --- a/gtk/color_dlg.c +++ b/gtk/color_dlg.c @@ -1,7 +1,7 @@ /* color_dlg.c * Definitions for dialog boxes for color filters * - * $Id: color_dlg.c,v 1.8 2000/08/24 13:21:29 deniel Exp $ + * $Id: color_dlg.c,v 1.9 2001/02/01 20:21:21 gram Exp $ * * Ethereal - Network traffic analyzer * By Gerald Combs <gerald@zing.org> @@ -43,7 +43,7 @@ #include "colors.h" #include "color_dlg.h" #include "file.h" -#include "dfilter.h" +#include "dfilter/dfilter.h" #include "simple_dialog.h" #include "dlg_utils.h" #include "ui_util.h" @@ -884,7 +884,7 @@ edit_color_filter_ok_cb (GtkButton *button, gchar *filter_name; gchar *filter_text; color_filter_t *colorf; - dfilter *compiled_filter; + dfilter_t *compiled_filter; GtkWidget *color_filters; dialog = (GtkWidget *)user_data; @@ -904,7 +904,7 @@ edit_color_filter_ok_cb (GtkButton *button, return; } - if(dfilter_compile(filter_text, &compiled_filter) != 0 ){ + if(!dfilter_compile(filter_text, &compiled_filter)) { simple_dialog(ESD_TYPE_CRIT, NULL, "Filter \"%s\" did not compile correctly.\n" " Please try again. Filter unchanged.\n%s\n", filter_name, dfilter_error_msg); @@ -927,7 +927,7 @@ edit_color_filter_ok_cb (GtkButton *button, gtk_clist_set_background(GTK_CLIST(color_filters), cfile.colors->row_selected, &new_bg_color); if(colorf->c_colorfilter != NULL) - dfilter_destroy(colorf->c_colorfilter); + dfilter_free(colorf->c_colorfilter); colorf->c_colorfilter = compiled_filter; /* gtk_clist_set_text frees old text (if any) and allocates new space */ gtk_clist_set_text(GTK_CLIST(color_filters), diff --git a/gtk/colors.c b/gtk/colors.c index 44da72220a..6bbfe41ff3 100644 --- a/gtk/colors.c +++ b/gtk/colors.c @@ -1,7 +1,7 @@ /* colors.c * Definitions for color structures and routines * - * $Id: colors.c,v 1.6 2000/09/28 03:16:29 gram Exp $ + * $Id: colors.c,v 1.7 2001/02/01 20:21:21 gram Exp $ * * Ethereal - Network traffic analyzer * By Gerald Combs <gerald@zing.org> @@ -44,7 +44,7 @@ #include "packet.h" #include "colors.h" #include "file.h" -#include "dfilter.h" +#include "dfilter/dfilter.h" #include "simple_dialog.h" #include "util.h" @@ -120,8 +120,8 @@ colfilter_new(void) default_colors[i].proto); colorf->bg_color = color; - if (dfilter_compile(default_colors[i].proto, - &colorf->c_colorfilter) != 0) { + if (!dfilter_compile(default_colors[i].proto, + &colorf->c_colorfilter)) { simple_dialog(ESD_TYPE_WARN, NULL, "Cannot compile default color filter %s.\n%s", default_colors[i].proto, dfilter_error_msg); @@ -158,7 +158,7 @@ delete_color_filter(color_filter_t *colorf) if (colorf->filter_text != NULL) g_free(colorf->filter_text); if (colorf->c_colorfilter != NULL) - dfilter_destroy(colorf->c_colorfilter); + dfilter_free(colorf->c_colorfilter); filter_list = g_slist_remove(filter_list, colorf); g_free(colorf); } @@ -177,7 +177,7 @@ read_filters(colfilter *filter) FILE *f; gchar *path; gchar *fname = PF_DIR "/colorfilters"; - dfilter *temp_dfilter; + dfilter_t *temp_dfilter; /* decide what file to open (from dfilter code) */ @@ -217,7 +217,7 @@ read_filters(colfilter *filter) name, filter_exp, &bg_r, &bg_g, &bg_b, &fg_r, &fg_g, &fg_b) == 8){ /* we got a filter */ - if(dfilter_compile(filter_exp, &temp_dfilter) != 0){ + if(!dfilter_compile(filter_exp, &temp_dfilter)) { simple_dialog(ESD_TYPE_CRIT, NULL, "Could not compile color filter %s from saved filters.\n%s", name, dfilter_error_msg); diff --git a/gtk/colors.h b/gtk/colors.h index 8294e361b8..9c15030837 100644 --- a/gtk/colors.h +++ b/gtk/colors.h @@ -1,7 +1,7 @@ /* colors.h * Definitions for color structures and routines * - * $Id: colors.h,v 1.3 2000/08/11 13:33:00 deniel Exp $ + * $Id: colors.h,v 1.4 2001/02/01 20:21:21 gram Exp $ * * Ethereal - Network traffic analyzer * By Gerald Combs <gerald@zing.org> @@ -26,7 +26,7 @@ #define __COLORS_H__ #include "proto.h" -#include "dfilter.h" +#include "dfilter/dfilter.h" #include <gtk/gtk.h> #define MAXCOLORS 255 @@ -45,7 +45,7 @@ typedef struct _color_filter { gchar *filter_text; /* text of the filter expression */ GdkColor bg_color; /* background color for packets that match */ GdkColor fg_color; /* foreground color for packets that match */ - dfilter *c_colorfilter; /* compiled filter expression */ + dfilter_t *c_colorfilter; /* compiled filter expression */ GtkWidget *edit_dialog; /* if filter is being edited, dialog box for it */ } color_filter_t; diff --git a/gtk/dfilter_expr_dlg.c b/gtk/dfilter_expr_dlg.c index 657d01649c..97461259a1 100644 --- a/gtk/dfilter_expr_dlg.c +++ b/gtk/dfilter_expr_dlg.c @@ -7,7 +7,7 @@ * Copyright 2000, Jeffrey C. Foster<jfoste@woodward.com> and * Guy Harris <guy@alum.mit.edu> * - * $Id: dfilter_expr_dlg.c,v 1.5 2001/01/10 23:36:35 guy Exp $ + * $Id: dfilter_expr_dlg.c,v 1.6 2001/02/01 20:21:21 gram Exp $ * * Ethereal - Network traffic analyzer * By Gerald Combs <gerald@zing.org> @@ -139,7 +139,7 @@ field_select_row_cb(GtkWidget *tree, GList *node, gint column, E_DFILTER_EXPR_ACCEPT_BT_KEY); header_field_info *hfinfo, *cur_hfinfo; guint32 relations; - char *value_type; + const char *value_type; char value_label_string[1024+1]; /* XXX - should be large enough */ hfinfo = gtk_ctree_node_get_row_data(GTK_CTREE(tree), @@ -246,95 +246,7 @@ field_select_row_cb(GtkWidget *tree, GList *node, gint column, * Set the label for the value to indicate what type of value * it is. */ - switch (hfinfo->type) { - - case FT_NONE: - /* - * You can only test for the field's presence; hide - * the value stuff. - */ - value_type = NULL; - break; - - case FT_BOOLEAN: - value_type = "Boolean"; - break; - - case FT_UINT8: - value_type = "unsigned, byte"; - break; - - case FT_UINT16: - value_type = "unsigned, 2 bytes"; - break; - - case FT_UINT24: - value_type = "unsigned, 3 bytes"; - break; - - case FT_UINT32: - value_type = "unsigned, 4 bytes"; - break; - - case FT_INT8: - value_type = "signed, byte"; - break; - - case FT_INT16: - value_type = "signed, 2 bytes"; - break; - - case FT_INT24: - value_type = "signed, 3 bytes"; - break; - - case FT_INT32: - value_type = "signed, 4 bytes"; - break; - - case FT_DOUBLE: - value_type = "floating point"; - break; - - case FT_ABSOLUTE_TIME: - value_type = "date and time"; - break; - - case FT_RELATIVE_TIME: - value_type = "time"; - break; - - case FT_STRING: - case FT_STRINGZ: - case FT_UINT_STRING: - value_type = "character string"; - break; - - case FT_ETHER: - value_type = "Ethernet or other MAC address"; - break; - - case FT_BYTES: - value_type = "sequence of bytes"; - break; - - case FT_IPv4: - value_type = "IPv4 address"; - break; - - case FT_IPv6: - value_type = "IPv6 address"; - break; - - case FT_IPXNET: - value_type = "IPX network address"; - break; - - default: - g_assert_not_reached(); - value_type = NULL; - break; - } + value_type = ftype_pretty_name(hfinfo->type); if (value_type != NULL) { /* * Indicate what type of value it is. diff --git a/gtk/file_dlg.c b/gtk/file_dlg.c index 757df42631..fab7d1f42d 100644 --- a/gtk/file_dlg.c +++ b/gtk/file_dlg.c @@ -1,7 +1,7 @@ /* file_dlg.c * Dialog boxes for handling files * - * $Id: file_dlg.c,v 1.35 2001/01/21 02:27:24 guy Exp $ + * $Id: file_dlg.c,v 1.36 2001/02/01 20:21:21 gram Exp $ * * Ethereal - Network traffic analyzer * By Gerald Combs <gerald@zing.org> @@ -149,13 +149,13 @@ static void file_open_ok_cb(GtkWidget *w, GtkFileSelection *fs) { gchar *cf_name, *rfilter, *s; GtkWidget *filter_te, *resolv_cb; - dfilter *rfcode = NULL; + dfilter_t *rfcode = NULL; int err; cf_name = g_strdup(gtk_file_selection_get_filename(GTK_FILE_SELECTION (fs))); filter_te = gtk_object_get_data(GTK_OBJECT(w), E_RFILTER_TE_KEY); rfilter = gtk_entry_get_text(GTK_ENTRY(filter_te)); - if (dfilter_compile(rfilter, &rfcode) != 0) { + if (!dfilter_compile(rfilter, &rfcode)) { simple_dialog(ESD_TYPE_CRIT, NULL, dfilter_error_msg); return; } @@ -178,7 +178,7 @@ file_open_ok_cb(GtkWidget *w, GtkFileSelection *fs) { dismiss the alert box popped up for the open error, try again. */ if (rfcode != NULL) - dfilter_destroy(rfcode); + dfilter_free(rfcode); g_free(cf_name); return; } diff --git a/gtk/find_dlg.c b/gtk/find_dlg.c index 9203899baf..18b827f8f5 100644 --- a/gtk/find_dlg.c +++ b/gtk/find_dlg.c @@ -1,7 +1,7 @@ /* find_dlg.c * Routines for "find frame" window * - * $Id: find_dlg.c,v 1.18 2001/01/21 02:27:24 guy Exp $ + * $Id: find_dlg.c,v 1.19 2001/02/01 20:21:21 gram Exp $ * * Ethereal - Network traffic analyzer * By Gerald Combs <gerald@zing.org> @@ -37,7 +37,7 @@ #include <glib.h> #include "proto.h" -#include "dfilter.h" +#include "dfilter/dfilter.h" #include "globals.h" #include "ui_util.h" @@ -187,7 +187,7 @@ find_frame_ok_cb(GtkWidget *ok_bt, gpointer parent_w) { GtkWidget *filter_te, *backward_rb; gchar *filter_text; - dfilter *sfcode; + dfilter_t *sfcode; filter_te = (GtkWidget *) gtk_object_get_data(GTK_OBJECT(parent_w), E_FIND_FILT_KEY); backward_rb = (GtkWidget *) gtk_object_get_data(GTK_OBJECT(parent_w), E_FIND_BACKWARD_KEY); @@ -197,7 +197,7 @@ find_frame_ok_cb(GtkWidget *ok_bt, gpointer parent_w) /* * Try to compile the filter. */ - if (dfilter_compile(filter_text, &sfcode) != 0) { + if (!dfilter_compile(filter_text, &sfcode)) { /* The attempt failed; report an error. */ simple_dialog(ESD_TYPE_CRIT, NULL, dfilter_error_msg); return; diff --git a/gtk/help_dlg.c b/gtk/help_dlg.c index aa18ca99e9..03deb5ffb2 100644 --- a/gtk/help_dlg.c +++ b/gtk/help_dlg.c @@ -1,6 +1,6 @@ /* help_dlg.c * - * $Id: help_dlg.c,v 1.12 2000/11/22 04:07:00 gram Exp $ + * $Id: help_dlg.c,v 1.13 2001/02/01 20:21:21 gram Exp $ * * Laurent Deniel <deniel@worldnet.fr> * @@ -378,7 +378,7 @@ static void set_help_text(GtkWidget *w, help_type_t type) nb_lines += 2; } else { - type_name = proto_registrar_ftype_name(hfinfo->type); + type_name = ftype_name(hfinfo->type); snprintf(buffer, BUFF_LEN, "%s%s%s%s(%s)\n", hfinfo->abbrev, &blanks[B_LEN - (maxlen - strlen(hfinfo->abbrev)) - 2], diff --git a/gtk/main.c b/gtk/main.c index 649a6dfcf6..df341080b8 100644 --- a/gtk/main.c +++ b/gtk/main.c @@ -1,6 +1,6 @@ /* main.c * - * $Id: main.c,v 1.176 2001/01/28 23:56:29 guy Exp $ + * $Id: main.c,v 1.177 2001/02/01 20:21:21 gram Exp $ * * Ethereal - Network traffic analyzer * By Gerald Combs <gerald@ethereal.com> @@ -120,7 +120,7 @@ #include "util.h" #include "simple_dialog.h" #include "proto_draw.h" -#include "dfilter.h" +#include "dfilter/dfilter.h" #include "keys.h" #include "packet_win.h" #include "gtkglobals.h" @@ -146,7 +146,6 @@ GtkStyle *item_style; /* Specifies the field currently selected in the GUI protocol tree */ field_info *finfo_selected = NULL; -static char* hfinfo_numeric_format(header_field_info *hfinfo); static void create_main_window(gint, gint, gint, e_prefs*); /* About Ethereal window */ @@ -171,10 +170,6 @@ match_selected_cb(GtkWidget *w, gpointer data) { char *buf; GtkWidget *filter_te; - char *ptr, *format, *stringified; - int i, dfilter_len, abbrev_len; - guint8 *c; - header_field_info *hfinfo; filter_te = gtk_object_get_data(GTK_OBJECT(w), E_DFILTER_TE_KEY); @@ -186,123 +181,7 @@ match_selected_cb(GtkWidget *w, gpointer data) return; } - hfinfo = finfo_selected->hfinfo; - g_assert(hfinfo); - abbrev_len = strlen(hfinfo->abbrev); - - switch(hfinfo->type) { - - case FT_BOOLEAN: - dfilter_len = abbrev_len + 2; - buf = g_malloc0(dfilter_len); - snprintf(buf, dfilter_len, "%s%s", finfo_selected->value.numeric ? "" : "!", - hfinfo->abbrev); - break; - - case FT_UINT8: - case FT_UINT16: - case FT_UINT24: - case FT_UINT32: - case FT_INT8: - case FT_INT16: - case FT_INT24: - case FT_INT32: - dfilter_len = abbrev_len + 20; - buf = g_malloc0(dfilter_len); - format = hfinfo_numeric_format(hfinfo); - snprintf(buf, dfilter_len, format, hfinfo->abbrev, finfo_selected->value.numeric); - break; - - case FT_IPv4: - dfilter_len = abbrev_len + 4 + 15 + 1; - buf = g_malloc0(dfilter_len); - snprintf(buf, dfilter_len, "%s == %s", hfinfo->abbrev, - ipv4_addr_str(&(finfo_selected->value.ipv4))); - break; - - case FT_IPXNET: - dfilter_len = abbrev_len + 15; - buf = g_malloc0(dfilter_len); - snprintf(buf, dfilter_len, "%s == 0x%08x", hfinfo->abbrev, - finfo_selected->value.numeric); - break; - - case FT_IPv6: - stringified = ip6_to_str((struct e_in6_addr*) &(finfo_selected->value.ipv6)); - dfilter_len = abbrev_len + 4 + strlen(stringified) + 1; - buf = g_malloc0(dfilter_len); - snprintf(buf, dfilter_len, "%s == %s", hfinfo->abbrev, - stringified); - break; - - case FT_DOUBLE: - dfilter_len = abbrev_len + 30; - buf = g_malloc0(dfilter_len); - snprintf(buf, dfilter_len, "%s == %f", hfinfo->abbrev, - finfo_selected->value.floating); - break; - - case FT_ETHER: - dfilter_len = abbrev_len + 22; - buf = g_malloc0(dfilter_len); - snprintf(buf, dfilter_len, "%s == %s", - hfinfo->abbrev, - ether_to_str(finfo_selected->value.ether)); - break; -#if 0 - - case FT_ABSOLUTE_TIME: - case FT_RELATIVE_TIME: - memcpy(&fi->value.time, va_arg(ap, struct timeval*), - sizeof(struct timeval)); - break; - - case FT_TEXT_ONLY: - ; /* nothing */ - break; -#endif - - case FT_STRING: - dfilter_len = abbrev_len + - strlen(finfo_selected->value.string) + 7; - buf = g_malloc0(dfilter_len); - snprintf(buf, dfilter_len, "%s == \"%s\"", - hfinfo->abbrev, - finfo_selected->value.string); - break; - - case FT_BYTES: - dfilter_len = finfo_selected->length*3 - 1; - dfilter_len += abbrev_len + 7; - buf = g_malloc0(dfilter_len); - snprintf(buf, dfilter_len, "%s == %s", - hfinfo->abbrev, - bytes_to_str_punct(finfo_selected->value.bytes, finfo_selected->length,':')); - break; - default: - c = cfile.pd + finfo_selected->start; - buf = g_malloc0(32 + finfo_selected->length * 3); - ptr = buf; - - sprintf(ptr, "frame[%d] == ", finfo_selected->start); - ptr = buf+strlen(buf); - - if (finfo_selected->length == 1) { - sprintf(ptr, "0x%02x", *c++); - } - else { - for (i=0;i<finfo_selected->length; i++) { - if (i == 0 ) { - sprintf(ptr, "%02x", *c++); - } - else { - sprintf(ptr, ":%02x", *c++); - } - ptr = buf+strlen(buf); - } - } - break; - } + buf = proto_alloc_dfilter_string(finfo_selected, cfile.pd); /* create a new one and set the display filter entry accordingly */ gtk_entry_set_text(GTK_ENTRY(filter_te), buf); @@ -313,60 +192,6 @@ match_selected_cb(GtkWidget *w, gpointer data) /* Don't g_free(buf) here. filter_packets() will do it the next time it's called */ } -static char* -hfinfo_numeric_format(header_field_info *hfinfo) -{ - char *format = NULL; - - /* Pick the proper format string */ - switch(hfinfo->display) { - case BASE_DEC: - case BASE_NONE: - case BASE_OCT: /* I'm lazy */ - case BASE_BIN: /* I'm lazy */ - switch(hfinfo->type) { - case FT_UINT8: - case FT_UINT16: - case FT_UINT24: - case FT_UINT32: - format = "%s == %u"; - break; - case FT_INT8: - case FT_INT16: - case FT_INT24: - case FT_INT32: - format = "%s == %d"; - break; - default: - g_assert_not_reached(); - ; - } - break; - case BASE_HEX: - switch(hfinfo->type) { - case FT_UINT8: - format = "%s == 0x%02x"; - break; - case FT_UINT16: - format = "%s == 0x%04x"; - break; - case FT_UINT24: - format = "%s == 0x%06x"; - break; - case FT_UINT32: - format = "%s == 0x%08x"; - break; - default: - g_assert_not_reached(); - ; - } - break; - default: - g_assert_not_reached(); - ; - } - return format; -} /* Run the current display filter on the current packet set, and @@ -585,7 +410,8 @@ tree_view_select_row_cb(GtkCTree *ctree, GList *node, gint column, gpointer user set_menus_for_selected_tree_row(TRUE); - if (finfo->hfinfo && finfo->hfinfo->type != FT_TEXT_ONLY) { + /*if (finfo->hfinfo && finfo->hfinfo->type != FT_TEXT_ONLY) {*/ + if (finfo->hfinfo) { if (finfo->hfinfo->blurb != NULL && finfo->hfinfo->blurb[0] != '\0') { has_blurb = TRUE; @@ -872,7 +698,7 @@ main(int argc, char *argv[]) #endif gint pl_size = 280, tv_size = 95, bv_size = 75; gchar *rc_file, *cf_name = NULL, *rfilter = NULL; - dfilter *rfcode = NULL; + dfilter_t *rfcode = NULL; gboolean rfilter_parse_failed = FALSE; e_prefs *prefs; char *bold_font_name; @@ -1312,7 +1138,7 @@ main(int argc, char *argv[]) up on top of us. */ if (cf_name) { if (rfilter != NULL) { - if (dfilter_compile(rfilter, &rfcode) != 0) { + if (!dfilter_compile(rfilter, &rfcode)) { simple_dialog(ESD_TYPE_CRIT, NULL, dfilter_error_msg); rfilter_parse_failed = TRUE; } @@ -1345,7 +1171,7 @@ main(int argc, char *argv[]) if (s != NULL) last_open_dir = s; } else { - dfilter_destroy(rfcode); + dfilter_free(rfcode); cfile.rfcode = NULL; } } diff --git a/gtk/packet_win.c b/gtk/packet_win.c index abf4e8a917..760033f8d8 100644 --- a/gtk/packet_win.c +++ b/gtk/packet_win.c @@ -3,7 +3,7 @@ * * Copyright 2000, Jeffrey C. Foster <jfoste@woodward.com> * - * $Id: packet_win.c,v 1.16 2000/10/06 10:11:40 gram Exp $ + * $Id: packet_win.c,v 1.17 2001/02/01 20:21:22 gram Exp $ * * Ethereal - Network traffic analyzer * By Gerald Combs <gerald@zing.org> @@ -64,7 +64,6 @@ #include "simple_dialog.h" #include "ui_util.h" #include "proto_draw.h" -#include "dfilter.h" #include "keys.h" #include "gtkglobals.h" #include "plugins.h" |