From Kovarththanan Rajaratnam:

Only fill in frame_data vals when needed.

svn path=/trunk/; revision=29203
This commit is contained in:
Anders Broman 2009-07-27 08:33:26 +00:00
parent 9ca4ac2bed
commit cb771536df
9 changed files with 23 additions and 16 deletions

View File

@ -1405,7 +1405,7 @@ col_fill_in_frame_data(frame_data *fd, column_info *cinfo, gint col)
}
void
col_fill_in(packet_info *pinfo)
col_fill_in(packet_info *pinfo, gboolean fill_fd_colums)
{
int i;
@ -1413,7 +1413,8 @@ col_fill_in(packet_info *pinfo)
switch (pinfo->cinfo->col_fmt[i]) {
case COL_NUMBER:
col_fill_in_frame_data(pinfo->fd, pinfo->cinfo, i);
if (fill_fd_colums)
col_fill_in_frame_data(pinfo->fd, pinfo->cinfo, i);
break;
case COL_CLS_TIME:
@ -1422,7 +1423,8 @@ col_fill_in(packet_info *pinfo)
case COL_REL_TIME:
case COL_DELTA_TIME:
case COL_DELTA_TIME_DIS:
col_fill_in_frame_data(pinfo->fd, pinfo->cinfo, i);
if (fill_fd_colums)
col_fill_in_frame_data(pinfo->fd, pinfo->cinfo, i);
break;
case COL_REL_CONV_TIME:
@ -1507,7 +1509,8 @@ col_fill_in(packet_info *pinfo)
case COL_PACKET_LENGTH:
case COL_CUMULATIVE_BYTES:
col_fill_in_frame_data(pinfo->fd, pinfo->cinfo, i);
if (fill_fd_colums)
col_fill_in_frame_data(pinfo->fd, pinfo->cinfo, i);
break;
case COL_OXID:

View File

@ -76,7 +76,7 @@ extern void col_fill_in_frame_data(frame_data *fd, column_info *cinfo, gint col)
*
* Internal, don't use this in dissectors!
*/
extern void col_fill_in(packet_info *pinfo);
extern void col_fill_in(packet_info *pinfo, gboolean fill_fd_colums);
/* Utility routines used by packet*.c */

View File

@ -198,7 +198,7 @@ epan_dissect_prime_dfilter(epan_dissect_t *edt, const dfilter_t* dfcode)
}
void
epan_dissect_fill_in_columns(epan_dissect_t *edt)
epan_dissect_fill_in_columns(epan_dissect_t *edt, gboolean fill_fd_colums)
{
col_fill_in(&edt->pi);
col_fill_in(&edt->pi, fill_fd_colums);
}

View File

@ -101,7 +101,7 @@ epan_dissect_prime_dfilter(epan_dissect_t *edt, const dfilter_t *dfcode);
/* fill the dissect run output into the packet list columns */
void
epan_dissect_fill_in_columns(epan_dissect_t *edt);
epan_dissect_fill_in_columns(epan_dissect_t *edt, gboolean fill_fd_colums);
/* free a single packet dissection */
void

View File

@ -54,7 +54,7 @@ typedef struct _frame_data {
unsigned int passed_dfilter : 1; /* 1 = display, 0 = no display */
unsigned int encoding : 2; /* Character encoding (ASCII, EBCDIC...) */
unsigned int visited : 1; /* Has this packet been visited yet? 1=Yes,0=No*/
unsigned int marked : 1; /* 1 = marked by user, 0 = normal */
unsigned int marked : 1; /* 1 = marked by user, 0 = normal */
unsigned int ref_time : 1; /* 1 = marked as a reference time frame, 0 = normal */
} flags;
void *color_filter; /* Per-packet matching color_filter_t object */

12
file.c
View File

@ -1099,7 +1099,11 @@ add_packet_to_packet_list(frame_data *fdata, capture_file *cf,
cum_bytes += fdata->pkt_len;
}
epan_dissect_fill_in_columns(edt);
#ifdef NEW_PACKET_LIST
epan_dissect_fill_in_columns(edt, FALSE);
#else
epan_dissect_fill_in_columns(edt, TRUE);
#endif
/* If we haven't yet seen the first frame, this is it.
@ -2121,7 +2125,7 @@ print_packet(capture_file *cf, frame_data *fdata,
information. */
if (args->print_args->print_summary) {
epan_dissect_run(edt, pseudo_header, pd, fdata, &cf->cinfo);
epan_dissect_fill_in_columns(edt);
epan_dissect_fill_in_columns(edt, TRUE);
} else
epan_dissect_run(edt, pseudo_header, pd, fdata, NULL);
@ -2453,7 +2457,7 @@ write_psml_packet(capture_file *cf, frame_data *fdata,
proto_tree_needed = have_custom_cols(&cf->cinfo);
edt = epan_dissect_new(proto_tree_needed, proto_tree_needed);
epan_dissect_run(edt, pseudo_header, pd, fdata, &cf->cinfo);
epan_dissect_fill_in_columns(edt);
epan_dissect_fill_in_columns(edt, TRUE);
/* Write out the information in that tree. */
proto_tree_write_psml(edt, fh);
@ -2527,7 +2531,7 @@ write_csv_packet(capture_file *cf, frame_data *fdata,
proto_tree_needed = have_custom_cols(&cf->cinfo);
edt = epan_dissect_new(proto_tree_needed, proto_tree_needed);
epan_dissect_run(edt, pseudo_header, pd, fdata, &cf->cinfo);
epan_dissect_fill_in_columns(edt);
epan_dissect_fill_in_columns(edt, TRUE);
/* Write out the information in that tree. */
proto_tree_write_csv(edt, fh);

View File

@ -519,7 +519,7 @@ get_filter_from_packet_list_row_and_column(gpointer data)
epan_dissect_run(edt, &cfile.pseudo_header, cfile.pd, fdata,
&cfile.cinfo);
epan_dissect_fill_in_columns(edt);
epan_dissect_fill_in_columns(edt, TRUE);
if (strlen(cfile.cinfo.col_expr.col_expr[column]) != 0 &&
strlen(cfile.cinfo.col_expr.col_expr_val[column]) != 0) {

View File

@ -141,7 +141,7 @@ void new_window_cb(GtkWidget *w _U_)
DataPtr->edt = epan_dissect_new(TRUE, TRUE);
epan_dissect_run(DataPtr->edt, &DataPtr->pseudo_header, DataPtr->pd,
DataPtr->frame, &cfile.cinfo);
epan_dissect_fill_in_columns(DataPtr->edt);
epan_dissect_fill_in_columns(DataPtr->edt, TRUE);
/*
* Build title of window by getting column data constructed when the

View File

@ -2908,7 +2908,7 @@ print_packet(capture_file *cf, epan_dissect_t *edt)
}
} else {
/* Just fill in the columns. */
epan_dissect_fill_in_columns(edt);
epan_dissect_fill_in_columns(edt, TRUE);
/* Now print them. */
switch (output_action) {