diff options
-rw-r--r-- | epan/column.c | 312 | ||||
-rw-r--r-- | epan/column.h | 2 | ||||
-rw-r--r-- | gtk/main.c | 12 | ||||
-rw-r--r-- | gtk/main_packet_list.c | 2 | ||||
-rw-r--r-- | rawshark.c | 30 | ||||
-rw-r--r-- | tshark.c | 44 |
6 files changed, 167 insertions, 235 deletions
diff --git a/epan/column.c b/epan/column.c index 0babc3b2ef..31232a6aaf 100644 --- a/epan/column.c +++ b/epan/column.c @@ -314,139 +314,139 @@ static const char * get_timestamp_column_longest_string(gint type, gint precision) { - switch(type) { - case(TS_ABSOLUTE_WITH_DATE): - switch(precision) { - case(TS_PREC_AUTO_SEC): - case(TS_PREC_FIXED_SEC): - return "0000-00-00 00:00:00"; - break; - case(TS_PREC_AUTO_DSEC): - case(TS_PREC_FIXED_DSEC): - return "0000-00-00 00:00:00.0"; - break; - case(TS_PREC_AUTO_CSEC): - case(TS_PREC_FIXED_CSEC): - return "0000-00-00 00:00:00.00"; - break; - case(TS_PREC_AUTO_MSEC): - case(TS_PREC_FIXED_MSEC): - return "0000-00-00 00:00:00.000"; - break; - case(TS_PREC_AUTO_USEC): - case(TS_PREC_FIXED_USEC): - return "0000-00-00 00:00:00.000000"; - break; - case(TS_PREC_AUTO_NSEC): - case(TS_PREC_FIXED_NSEC): - return "0000-00-00 00:00:00.000000000"; - break; - default: - g_assert_not_reached(); - } - break; - case(TS_ABSOLUTE): - switch(precision) { - case(TS_PREC_AUTO_SEC): - case(TS_PREC_FIXED_SEC): - return "00:00:00"; - break; - case(TS_PREC_AUTO_DSEC): - case(TS_PREC_FIXED_DSEC): - return "00:00:00.0"; - break; - case(TS_PREC_AUTO_CSEC): - case(TS_PREC_FIXED_CSEC): - return "00:00:00.00"; - break; - case(TS_PREC_AUTO_MSEC): - case(TS_PREC_FIXED_MSEC): - return "00:00:00.000"; - break; - case(TS_PREC_AUTO_USEC): - case(TS_PREC_FIXED_USEC): - return "00:00:00.000000"; - break; - case(TS_PREC_AUTO_NSEC): - case(TS_PREC_FIXED_NSEC): - return "00:00:00.000000000"; - break; - default: - g_assert_not_reached(); - } - break; - case(TS_RELATIVE): /* fallthrough */ - case(TS_DELTA): - case(TS_DELTA_DIS): - switch(precision) { - case(TS_PREC_AUTO_SEC): - case(TS_PREC_FIXED_SEC): - return "0000"; - break; - case(TS_PREC_AUTO_DSEC): - case(TS_PREC_FIXED_DSEC): - return "0000.0"; - break; - case(TS_PREC_AUTO_CSEC): - case(TS_PREC_FIXED_CSEC): - return "0000.00"; - break; - case(TS_PREC_AUTO_MSEC): - case(TS_PREC_FIXED_MSEC): - return "0000.000"; - break; - case(TS_PREC_AUTO_USEC): - case(TS_PREC_FIXED_USEC): - return "0000.000000"; - break; - case(TS_PREC_AUTO_NSEC): - case(TS_PREC_FIXED_NSEC): - return "0000.000000000"; - break; - default: - g_assert_not_reached(); - } - break; - case(TS_EPOCH): + switch(type) { + case(TS_ABSOLUTE_WITH_DATE): + switch(precision) { + case(TS_PREC_AUTO_SEC): + case(TS_PREC_FIXED_SEC): + return "0000-00-00 00:00:00"; + break; + case(TS_PREC_AUTO_DSEC): + case(TS_PREC_FIXED_DSEC): + return "0000-00-00 00:00:00.0"; + break; + case(TS_PREC_AUTO_CSEC): + case(TS_PREC_FIXED_CSEC): + return "0000-00-00 00:00:00.00"; + break; + case(TS_PREC_AUTO_MSEC): + case(TS_PREC_FIXED_MSEC): + return "0000-00-00 00:00:00.000"; + break; + case(TS_PREC_AUTO_USEC): + case(TS_PREC_FIXED_USEC): + return "0000-00-00 00:00:00.000000"; + break; + case(TS_PREC_AUTO_NSEC): + case(TS_PREC_FIXED_NSEC): + return "0000-00-00 00:00:00.000000000"; + break; + default: + g_assert_not_reached(); + } + break; + case(TS_ABSOLUTE): + switch(precision) { + case(TS_PREC_AUTO_SEC): + case(TS_PREC_FIXED_SEC): + return "00:00:00"; + break; + case(TS_PREC_AUTO_DSEC): + case(TS_PREC_FIXED_DSEC): + return "00:00:00.0"; + break; + case(TS_PREC_AUTO_CSEC): + case(TS_PREC_FIXED_CSEC): + return "00:00:00.00"; + break; + case(TS_PREC_AUTO_MSEC): + case(TS_PREC_FIXED_MSEC): + return "00:00:00.000"; + break; + case(TS_PREC_AUTO_USEC): + case(TS_PREC_FIXED_USEC): + return "00:00:00.000000"; + break; + case(TS_PREC_AUTO_NSEC): + case(TS_PREC_FIXED_NSEC): + return "00:00:00.000000000"; + break; + default: + g_assert_not_reached(); + } + break; + case(TS_RELATIVE): /* fallthrough */ + case(TS_DELTA): + case(TS_DELTA_DIS): + switch(precision) { + case(TS_PREC_AUTO_SEC): + case(TS_PREC_FIXED_SEC): + return "0000"; + break; + case(TS_PREC_AUTO_DSEC): + case(TS_PREC_FIXED_DSEC): + return "0000.0"; + break; + case(TS_PREC_AUTO_CSEC): + case(TS_PREC_FIXED_CSEC): + return "0000.00"; + break; + case(TS_PREC_AUTO_MSEC): + case(TS_PREC_FIXED_MSEC): + return "0000.000"; + break; + case(TS_PREC_AUTO_USEC): + case(TS_PREC_FIXED_USEC): + return "0000.000000"; + break; + case(TS_PREC_AUTO_NSEC): + case(TS_PREC_FIXED_NSEC): + return "0000.000000000"; + break; + default: + g_assert_not_reached(); + } + break; + case(TS_EPOCH): /* This is enough to represent 2^63 (signed 64-bit integer) + fractions */ - switch(precision) { - case(TS_PREC_AUTO_SEC): - case(TS_PREC_FIXED_SEC): - return "0000000000000000000"; - break; - case(TS_PREC_AUTO_DSEC): - case(TS_PREC_FIXED_DSEC): - return "0000000000000000000.0"; - break; - case(TS_PREC_AUTO_CSEC): - case(TS_PREC_FIXED_CSEC): - return "0000000000000000000.00"; - break; - case(TS_PREC_AUTO_MSEC): - case(TS_PREC_FIXED_MSEC): - return "0000000000000000000.000"; - break; - case(TS_PREC_AUTO_USEC): - case(TS_PREC_FIXED_USEC): - return "0000000000000000000.000000"; - break; - case(TS_PREC_AUTO_NSEC): - case(TS_PREC_FIXED_NSEC): - return "0000000000000000000.000000000"; - break; - default: - g_assert_not_reached(); - } - break; - case(TS_NOT_SET): - return "0000.000000"; - break; - default: - g_assert_not_reached(); - } - - /* never reached, satisfy compiler */ - return ""; + switch(precision) { + case(TS_PREC_AUTO_SEC): + case(TS_PREC_FIXED_SEC): + return "0000000000000000000"; + break; + case(TS_PREC_AUTO_DSEC): + case(TS_PREC_FIXED_DSEC): + return "0000000000000000000.0"; + break; + case(TS_PREC_AUTO_CSEC): + case(TS_PREC_FIXED_CSEC): + return "0000000000000000000.00"; + break; + case(TS_PREC_AUTO_MSEC): + case(TS_PREC_FIXED_MSEC): + return "0000000000000000000.000"; + break; + case(TS_PREC_AUTO_USEC): + case(TS_PREC_FIXED_USEC): + return "0000000000000000000.000000"; + break; + case(TS_PREC_AUTO_NSEC): + case(TS_PREC_FIXED_NSEC): + return "0000000000000000000.000000000"; + break; + default: + g_assert_not_reached(); + } + break; + case(TS_NOT_SET): + return "0000.000000"; + break; + default: + g_assert_not_reached(); + } + + /* never reached, satisfy compiler */ + return ""; } /* Returns the longer string of the column title or the hard-coded width of @@ -454,11 +454,11 @@ get_timestamp_column_longest_string(gint type, gint precision) const gchar * get_column_width_string(gint format, gint col) { - if(strlen(get_column_longest_string(format)) > - strlen(get_column_title(col))) - return get_column_longest_string(format); - else - return get_column_title(col); + if(strlen(get_column_longest_string(format)) > + strlen(get_column_title(col))) + return get_column_longest_string(format); + else + return get_column_title(col); } /* Returns a string representing the longest possible value for a @@ -498,8 +498,8 @@ get_column_longest_string(gint format) case COL_DELTA_TIME_DIS: return get_timestamp_column_longest_string(TS_DELTA_DIS, timestamp_get_precision()); break; - case COL_REL_CONV_TIME: /* 'abuse' TS_RELATIVE to set the time format */ - case COL_DELTA_CONV_TIME: /* for the conversation related time columns */ + case COL_REL_CONV_TIME: /* 'abuse' TS_RELATIVE to set the time format */ + case COL_DELTA_CONV_TIME: /* for the conversation related time columns */ return get_timestamp_column_longest_string(TS_RELATIVE, timestamp_get_precision()); break; case COL_DEF_SRC: @@ -531,7 +531,7 @@ get_column_longest_string(gint format) return "000000"; break; case COL_PROTOCOL: - return "Protocol"; /* not the longest, but the longest is too long */ + return "Protocol"; /* not the longest, but the longest is too long */ break; case COL_PACKET_LENGTH: return "00000"; @@ -599,7 +599,7 @@ get_column_longest_string(gint format) return "9999 MHz [A 999]"; break; case COL_CUSTOM: - return "0000000000"; /* not the longest, but the longest is too long */ + return "0000000000"; /* not the longest, but the longest is too long */ break; default: /* COL_INFO */ return "Source port: kerberos-master Destination port: kerberos-master"; @@ -633,7 +633,7 @@ get_column_format_from_str(gchar *str) { if (strcmp(str, col_format_to_string(i)) == 0) return i; } - return -1; /* illegal */ + return -1; /* illegal */ } gchar * @@ -657,15 +657,17 @@ get_column_custom_field(gint col) { } void -build_column_format_array(column_info *cinfo, gboolean reset_fences) +build_column_format_array(column_info *cinfo, gint num_cols, gboolean reset_fences) { - int i, j; + int i; - col_setup(cinfo, prefs.num_cols); + /* Build the column format array */ + col_setup(cinfo, num_cols); for (i = 0; i < cinfo->num_cols; i++) { cinfo->col_fmt[i] = get_column_format(i); cinfo->col_title[i] = g_strdup(get_column_title(i)); + if (cinfo->col_fmt[i] == COL_CUSTOM) { cinfo->col_custom_field[i] = g_strdup(get_column_custom_field(i)); if(!dfilter_compile(cinfo->col_custom_field[i], &cinfo->col_custom_dfilter[i])) { @@ -678,34 +680,32 @@ build_column_format_array(column_info *cinfo, gboolean reset_fences) cinfo->col_custom_field[i] = NULL; cinfo->col_custom_dfilter[i] = NULL; } - cinfo->fmt_matx[i] = (gboolean *) g_malloc0(sizeof(gboolean) * - NUM_COL_FMTS); - get_column_format_matches(cinfo->fmt_matx[i], - cinfo->col_fmt[i]); + + cinfo->fmt_matx[i] = (gboolean *) g_malloc0(sizeof(gboolean) * NUM_COL_FMTS); + get_column_format_matches(cinfo->fmt_matx[i], cinfo->col_fmt[i]); cinfo->col_data[i] = NULL; if (cinfo->col_fmt[i] == COL_INFO) - cinfo->col_buf[i] = (gchar *) g_malloc(sizeof(gchar) * - COL_MAX_INFO_LEN); + cinfo->col_buf[i] = (gchar *) g_malloc(sizeof(gchar) * COL_MAX_INFO_LEN); else cinfo->col_buf[i] = (gchar *) g_malloc(sizeof(gchar) * COL_MAX_LEN); if(reset_fences) cinfo->col_fence[i] = 0; - cinfo->col_expr.col_expr[i] = (gchar *) g_malloc(sizeof(gchar) * - COL_MAX_LEN); - cinfo->col_expr.col_expr_val[i] = (gchar *) g_malloc(sizeof(gchar) * - COL_MAX_LEN); + cinfo->col_expr.col_expr[i] = (gchar *) g_malloc(sizeof(gchar) * COL_MAX_LEN); + cinfo->col_expr.col_expr_val[i] = (gchar *) g_malloc(sizeof(gchar) * COL_MAX_LEN); } cinfo->col_expr.col_expr[i] = NULL; cinfo->col_expr.col_expr_val[i] = NULL; for (i = 0; i < cinfo->num_cols; i++) { + int j; + for (j = 0; j < NUM_COL_FMTS; j++) { if (!cinfo->fmt_matx[i][j]) - continue; + continue; if (cinfo->col_first[j] == -1) cinfo->col_first[j] = i; diff --git a/epan/column.h b/epan/column.h index ec8238c0da..d8cf558bac 100644 --- a/epan/column.h +++ b/epan/column.h @@ -47,7 +47,7 @@ const char *get_column_longest_string(gint); gint get_column_char_width(gint format); void -build_column_format_array(column_info *cinfo, gboolean reset_fences); +build_column_format_array(column_info *cinfo, gint num_cols, gboolean reset_fences); #ifdef __cplusplus } diff --git a/gtk/main.c b/gtk/main.c index f9f2a3fb56..3cab4f65db 100644 --- a/gtk/main.c +++ b/gtk/main.c @@ -577,7 +577,7 @@ copy_selected_plist_cb(GtkWidget *w _U_, gpointer data _U_, COPY_SELECTED_E acti break; case COPY_SELECTED_VALUE: if (cfile.edt !=0 ) { - g_string_append(gtk_text_str, + g_string_append(gtk_text_str, get_node_field_value(cfile.finfo_selected, cfile.edt)); } break; @@ -2522,7 +2522,7 @@ main(int argc, char *argv[]) set_disabled_protos_list(); } - build_column_format_array(&cfile.cinfo, TRUE); + build_column_format_array(&cfile.cinfo, prefs->num_cols, TRUE); /* read in rc file from global and personal configuration paths. */ rc_file = get_datafile_path(RC_FILE); @@ -2868,10 +2868,10 @@ console_log_handler(const char *log_domain, GLogLevelFlags log_level, /* ignore log message, if log_level isn't interesting based upon the console log preferences. - If the preferences haven't been loaded loaded yet, display the + If the preferences haven't been loaded loaded yet, display the message anyway. - The default console_log_level preference value is such that only + The default console_log_level preference value is such that only ERROR, CRITICAL and WARNING level messages are processed; MESSAGE, INFO and DEBUG level messages are ignored. */ if((log_level & G_LOG_LEVEL_MASK & prefs.console_log_level) == 0 && @@ -3196,7 +3196,7 @@ main_widgets_show_or_hide(void) /* workaround for bug in GtkCList to ensure packet list scrollbar is updated */ #ifndef NEW_PACKET_LIST packet_list_freeze (); - packet_list_thaw (); + packet_list_thaw (); #endif } @@ -3433,7 +3433,7 @@ void change_configuration_profile (const gchar *profile_name) /* Reset current preferences and apply the new */ prefs_reset(); menu_prefs_reset(); - + (void) read_configuration_files (&gdp_path, &dp_path); recent_read_profile_static(&rf_path, &rf_open_errno); diff --git a/gtk/main_packet_list.c b/gtk/main_packet_list.c index bec8010c48..1ab84503aa 100644 --- a/gtk/main_packet_list.c +++ b/gtk/main_packet_list.c @@ -510,7 +510,7 @@ packet_list_recreate(void) prefs.num_cols = g_list_length(prefs.col_list); - build_column_format_array(&cfile.cinfo, FALSE); + build_column_format_array(&cfile.cinfo, prefs.num_cols, FALSE); pkt_scrollw = packet_list_new(&prefs); gtk_widget_show(pkt_scrollw); diff --git a/rawshark.c b/rawshark.c index e22fc2999e..a3aa3bcb82 100644 --- a/rawshark.c +++ b/rawshark.c @@ -766,35 +766,7 @@ main(int argc, char *argv[]) } /* Build the column format array */ - col_setup(&cfile.cinfo, prefs->num_cols); - for (i = 0; i < cfile.cinfo.num_cols; i++) { - cfile.cinfo.col_fmt[i] = get_column_format(i); - cfile.cinfo.col_title[i] = g_strdup(get_column_title(i)); - cfile.cinfo.fmt_matx[i] = (gboolean *) g_malloc0(sizeof(gboolean) * - NUM_COL_FMTS); - get_column_format_matches(cfile.cinfo.fmt_matx[i], cfile.cinfo.col_fmt[i]); - cfile.cinfo.col_data[i] = NULL; - if (cfile.cinfo.col_fmt[i] == COL_INFO) - cfile.cinfo.col_buf[i] = (gchar *) g_malloc(sizeof(gchar) * COL_MAX_INFO_LEN); - else - cfile.cinfo.col_buf[i] = (gchar *) g_malloc(sizeof(gchar) * COL_MAX_LEN); - cfile.cinfo.col_fence[i] = 0; - cfile.cinfo.col_expr.col_expr[i] = (gchar *) g_malloc(sizeof(gchar) * COL_MAX_LEN); - cfile.cinfo.col_expr.col_expr_val[i] = (gchar *) g_malloc(sizeof(gchar) * COL_MAX_LEN); - } - - for (i = 0; i < cfile.cinfo.num_cols; i++) { - int j; - - for (j = 0; j < NUM_COL_FMTS; j++) { - if (!cfile.cinfo.fmt_matx[i][j]) - continue; - - if (cfile.cinfo.col_first[j] == -1) - cfile.cinfo.col_first[j] = i; - cfile.cinfo.col_last[j] = i; - } - } + build_column_format_array(&cfile.cinfo, prefs->num_cols, TRUE); if (n_rfilters != 0) { for (i = 0; i < n_rfilters; i++) { @@ -739,7 +739,7 @@ int main(int argc, char *argv[]) { char *init_progfile_dir_error; - int opt, i; + int opt; extern char *optarg; gboolean arg_error = FALSE; @@ -1449,47 +1449,7 @@ main(int argc, char *argv[]) } /* Build the column format array */ - col_setup(&cfile.cinfo, prefs->num_cols); - for (i = 0; i < cfile.cinfo.num_cols; i++) { - cfile.cinfo.col_fmt[i] = get_column_format(i); - cfile.cinfo.col_title[i] = g_strdup(get_column_title(i)); - if (cfile.cinfo.col_fmt[i] == COL_CUSTOM) { - cfile.cinfo.col_custom_field[i] = g_strdup(get_column_custom_field(i)); - if(!dfilter_compile(cfile.cinfo.col_custom_field[i], &cfile.cinfo.col_custom_dfilter[i])) { - /* XXX: Should we issue a warning? */ - g_free(cfile.cinfo.col_custom_field[i]); - cfile.cinfo.col_custom_field[i] = NULL; - cfile.cinfo.col_custom_dfilter[i] = NULL; - } - } else { - cfile.cinfo.col_custom_field[i] = NULL; - cfile.cinfo.col_custom_dfilter[i] = NULL; - } - cfile.cinfo.fmt_matx[i] = (gboolean *) g_malloc0(sizeof(gboolean) * - NUM_COL_FMTS); - get_column_format_matches(cfile.cinfo.fmt_matx[i], cfile.cinfo.col_fmt[i]); - cfile.cinfo.col_data[i] = NULL; - if (cfile.cinfo.col_fmt[i] == COL_INFO) - cfile.cinfo.col_buf[i] = (gchar *) g_malloc(sizeof(gchar) * COL_MAX_INFO_LEN); - else - cfile.cinfo.col_buf[i] = (gchar *) g_malloc(sizeof(gchar) * COL_MAX_LEN); - cfile.cinfo.col_fence[i] = 0; - cfile.cinfo.col_expr.col_expr[i] = (gchar *) g_malloc(sizeof(gchar) * COL_MAX_LEN); - cfile.cinfo.col_expr.col_expr_val[i] = (gchar *) g_malloc(sizeof(gchar) * COL_MAX_LEN); - } - - for (i = 0; i < cfile.cinfo.num_cols; i++) { - int j; - - for (j = 0; j < NUM_COL_FMTS; j++) { - if (!cfile.cinfo.fmt_matx[i][j]) - continue; - - if (cfile.cinfo.col_first[j] == -1) - cfile.cinfo.col_first[j] = i; - cfile.cinfo.col_last[j] = i; - } - } + build_column_format_array(&cfile.cinfo, prefs->num_cols, TRUE); #ifdef HAVE_LIBPCAP capture_opts_trim_snaplen(&global_capture_opts, MIN_PACKET_SIZE); |