*
* $Id$
*
- * Ethereal - Network traffic analyzer
- * By Gerald Combs <gerald@ethereal.com>
+ * Wireshark - Network traffic analyzer
+ * By Gerald Combs <gerald@wireshark.org>
* Copyright 1998 Gerald Combs
*
* This program is free software; you can redistribute it and/or
/* Allocate all the data structures for constructing column data, given
the number of columns. */
void
-col_setup(column_info *col_info, gint num_cols)
+col_setup(column_info *cinfo, gint num_cols)
{
int i;
- col_info->num_cols = num_cols;
- col_info->col_fmt = (gint *) g_malloc(sizeof(gint) * num_cols);
- col_info->fmt_matx = (gboolean **) g_malloc(sizeof(gboolean *) * num_cols);
- col_info->col_first = (int *) g_malloc(sizeof(int) * (NUM_COL_FMTS));
- col_info->col_last = (int *) g_malloc(sizeof(int) * (NUM_COL_FMTS));
- col_info->col_title = (gchar **) g_malloc(sizeof(gchar *) * num_cols);
- col_info->col_data = (const gchar **) g_malloc(sizeof(gchar *) * num_cols);
- col_info->col_buf = (gchar **) g_malloc(sizeof(gchar *) * num_cols);
- col_info->col_fence = (int *) g_malloc(sizeof(int) * num_cols);
- col_info->col_expr = (gchar **) g_malloc(sizeof(gchar *) * num_cols);
- col_info->col_expr_val = (gchar **) g_malloc(sizeof(gchar *) * num_cols);
+ cinfo->num_cols = num_cols;
+ cinfo->col_fmt = (gint *) g_malloc(sizeof(gint) * num_cols);
+ cinfo->fmt_matx = (gboolean **) g_malloc(sizeof(gboolean *) * num_cols);
+ cinfo->col_first = (int *) g_malloc(sizeof(int) * (NUM_COL_FMTS));
+ cinfo->col_last = (int *) g_malloc(sizeof(int) * (NUM_COL_FMTS));
+ cinfo->col_title = (gchar **) g_malloc(sizeof(gchar *) * num_cols);
+ cinfo->col_data = (const gchar **) g_malloc(sizeof(gchar *) * num_cols);
+ cinfo->col_buf = (gchar **) g_malloc(sizeof(gchar *) * num_cols);
+ cinfo->col_fence = (int *) g_malloc(sizeof(int) * num_cols);
+ cinfo->col_expr = (gchar **) g_malloc(sizeof(gchar *) * num_cols);
+ cinfo->col_expr_val = (gchar **) g_malloc(sizeof(gchar *) * num_cols);
for (i = 0; i < NUM_COL_FMTS; i++) {
- col_info->col_first[i] = -1;
- col_info->col_last[i] = -1;
+ cinfo->col_first[i] = -1;
+ cinfo->col_last[i] = -1;
}
}
cinfo->col_data[i] = cinfo->col_buf[i]; \
}
+#define COL_CHECK_REF_TIME(fd, cinfo, col) \
+ if(fd->flags.ref_time){ \
+ g_snprintf(cinfo->col_buf[col], COL_MAX_LEN, "*REF*"); \
+ cinfo->col_data[col] = cinfo->col_buf[col]; \
+ return; \
+ }
+
/* Use this if "str" points to something that will stay around (and thus
needn't be copied). */
void
}
va_end(ap);
}
+void
+col_prepend_fence_fstr(column_info *cinfo, gint el, const gchar *format, ...)
+{
+ va_list ap;
+ int i;
+ char orig_buf[COL_BUF_MAX_LEN];
+ const char *orig;
+ size_t max_len;
+
+ g_assert(cinfo->col_first[el] >= 0);
+ if (el == COL_INFO)
+ max_len = COL_MAX_INFO_LEN;
+ else
+ max_len = COL_MAX_LEN;
+
+ va_start(ap, format);
+ for (i = cinfo->col_first[el]; i <= cinfo->col_last[el]; i++) {
+ if (cinfo->fmt_matx[i][el]) {
+ if (cinfo->col_data[i] != cinfo->col_buf[i]) {
+ /* This was set with "col_set_str()"; which is effectively const */
+ orig = cinfo->col_data[i];
+ } else {
+ strncpy(orig_buf, cinfo->col_buf[i], max_len);
+ orig_buf[max_len - 1] = '\0';
+ orig = orig_buf;
+ }
+ g_vsnprintf(cinfo->col_buf[i], max_len, format, ap);
+ cinfo->col_buf[i][max_len - 1] = '\0';
+
+ /*
+ * Move the fence if it exists, else create a new fence at the
+ * end of the prepended data.
+ */
+ if (cinfo->col_fence[i] > 0) {
+ cinfo->col_fence[i] += strlen(cinfo->col_buf[i]);
+ } else {
+ cinfo->col_fence[i] = strlen(cinfo->col_buf[i]);
+ }
+ strncat(cinfo->col_buf[i], orig, max_len);
+ cinfo->col_buf[i][max_len - 1] = '\0';
+ cinfo->col_data[i] = cinfo->col_buf[i];
+ }
+ }
+ va_end(ap);
+}
/* Use this if "str" points to something that won't stay around (and
must thus be copied). */
struct tm *tmp;
time_t then;
- then = fd->abs_secs;
+ COL_CHECK_REF_TIME(fd, cinfo, col);
+
+ then = fd->abs_ts.secs;
tmp = localtime(&then);
if (tmp != NULL) {
- g_snprintf(cinfo->col_buf[col], COL_MAX_LEN,
+ switch(timestamp_get_precision()) {
+ case(TS_PREC_FIXED_SEC):
+ case(TS_PREC_AUTO_SEC):
+ g_snprintf(cinfo->col_buf[col], COL_MAX_LEN,
+ "%04d-%02d-%02d %02d:%02d:%02d",
+ tmp->tm_year + 1900,
+ tmp->tm_mon + 1,
+ tmp->tm_mday,
+ tmp->tm_hour,
+ tmp->tm_min,
+ tmp->tm_sec);
+ break;
+ case(TS_PREC_FIXED_DSEC):
+ case(TS_PREC_AUTO_DSEC):
+ g_snprintf(cinfo->col_buf[col], COL_MAX_LEN,
+ "%04d-%02d-%02d %02d:%02d:%02d.%01ld",
+ tmp->tm_year + 1900,
+ tmp->tm_mon + 1,
+ tmp->tm_mday,
+ tmp->tm_hour,
+ tmp->tm_min,
+ tmp->tm_sec,
+ (long)fd->abs_ts.nsecs / 100000000);
+ break;
+ case(TS_PREC_FIXED_CSEC):
+ case(TS_PREC_AUTO_CSEC):
+ g_snprintf(cinfo->col_buf[col], COL_MAX_LEN,
+ "%04d-%02d-%02d %02d:%02d:%02d.%02ld",
+ tmp->tm_year + 1900,
+ tmp->tm_mon + 1,
+ tmp->tm_mday,
+ tmp->tm_hour,
+ tmp->tm_min,
+ tmp->tm_sec,
+ (long)fd->abs_ts.nsecs / 10000000);
+ break;
+ case(TS_PREC_FIXED_MSEC):
+ case(TS_PREC_AUTO_MSEC):
+ g_snprintf(cinfo->col_buf[col], COL_MAX_LEN,
+ "%04d-%02d-%02d %02d:%02d:%02d.%03ld",
+ tmp->tm_year + 1900,
+ tmp->tm_mon + 1,
+ tmp->tm_mday,
+ tmp->tm_hour,
+ tmp->tm_min,
+ tmp->tm_sec,
+ (long)fd->abs_ts.nsecs / 1000000);
+ break;
+ case(TS_PREC_FIXED_USEC):
+ case(TS_PREC_AUTO_USEC):
+ g_snprintf(cinfo->col_buf[col], COL_MAX_LEN,
"%04d-%02d-%02d %02d:%02d:%02d.%06ld",
tmp->tm_year + 1900,
tmp->tm_mon + 1,
tmp->tm_hour,
tmp->tm_min,
tmp->tm_sec,
- (long)fd->abs_usecs);
+ (long)fd->abs_ts.nsecs / 1000);
+ break;
+ case(TS_PREC_FIXED_NSEC):
+ case(TS_PREC_AUTO_NSEC):
+ g_snprintf(cinfo->col_buf[col], COL_MAX_LEN,
+ "%04d-%02d-%02d %02d:%02d:%02d.%09ld",
+ tmp->tm_year + 1900,
+ tmp->tm_mon + 1,
+ tmp->tm_mday,
+ tmp->tm_hour,
+ tmp->tm_min,
+ tmp->tm_sec,
+ (long)fd->abs_ts.nsecs);
+ break;
+ default:
+ g_assert_not_reached();
+ }
} else {
cinfo->col_buf[col][0] = '\0';
}
static void
col_set_rel_time(frame_data *fd, column_info *cinfo, int col)
{
- display_signed_time(cinfo->col_buf[col], COL_MAX_LEN,
- fd->rel_secs, fd->rel_usecs, USECS);
+ COL_CHECK_REF_TIME(fd, cinfo, col);
+
+ switch(timestamp_get_precision()) {
+ case(TS_PREC_FIXED_SEC):
+ case(TS_PREC_AUTO_SEC):
+ display_signed_time(cinfo->col_buf[col], COL_MAX_LEN,
+ (gint32) fd->rel_ts.secs, fd->rel_ts.nsecs / 1000000000, SECS);
+ break;
+ case(TS_PREC_FIXED_DSEC):
+ case(TS_PREC_AUTO_DSEC):
+ display_signed_time(cinfo->col_buf[col], COL_MAX_LEN,
+ (gint32) fd->rel_ts.secs, fd->rel_ts.nsecs / 100000000, DSECS);
+ break;
+ case(TS_PREC_FIXED_CSEC):
+ case(TS_PREC_AUTO_CSEC):
+ display_signed_time(cinfo->col_buf[col], COL_MAX_LEN,
+ (gint32) fd->rel_ts.secs, fd->rel_ts.nsecs / 10000000, CSECS);
+ break;
+ case(TS_PREC_FIXED_MSEC):
+ case(TS_PREC_AUTO_MSEC):
+ display_signed_time(cinfo->col_buf[col], COL_MAX_LEN,
+ (gint32) fd->rel_ts.secs, fd->rel_ts.nsecs / 1000000, MSECS);
+ break;
+ case(TS_PREC_FIXED_USEC):
+ case(TS_PREC_AUTO_USEC):
+ display_signed_time(cinfo->col_buf[col], COL_MAX_LEN,
+ (gint32) fd->rel_ts.secs, fd->rel_ts.nsecs / 1000, USECS);
+ break;
+ case(TS_PREC_FIXED_NSEC):
+ case(TS_PREC_AUTO_NSEC):
+ display_signed_time(cinfo->col_buf[col], COL_MAX_LEN,
+ (gint32) fd->rel_ts.secs, fd->rel_ts.nsecs, NSECS);
+ break;
+ default:
+ g_assert_not_reached();
+ }
cinfo->col_data[col] = cinfo->col_buf[col];
strcpy(cinfo->col_expr[col],"frame.time_relative");
strcpy(cinfo->col_expr_val[col],cinfo->col_buf[col]);
static void
col_set_delta_time(frame_data *fd, column_info *cinfo, int col)
{
- display_signed_time(cinfo->col_buf[col], COL_MAX_LEN,
- fd->del_secs, fd->del_usecs, USECS);
+ COL_CHECK_REF_TIME(fd, cinfo, col);
+
+ switch(timestamp_get_precision()) {
+ case(TS_PREC_FIXED_SEC):
+ case(TS_PREC_AUTO_SEC):
+ display_signed_time(cinfo->col_buf[col], COL_MAX_LEN,
+ (gint32) fd->del_cap_ts.secs, fd->del_cap_ts.nsecs / 1000000000, SECS);
+ break;
+ case(TS_PREC_FIXED_DSEC):
+ case(TS_PREC_AUTO_DSEC):
+ display_signed_time(cinfo->col_buf[col], COL_MAX_LEN,
+ (gint32) fd->del_cap_ts.secs, fd->del_cap_ts.nsecs / 100000000, DSECS);
+ break;
+ case(TS_PREC_FIXED_CSEC):
+ case(TS_PREC_AUTO_CSEC):
+ display_signed_time(cinfo->col_buf[col], COL_MAX_LEN,
+ (gint32) fd->del_cap_ts.secs, fd->del_cap_ts.nsecs / 10000000, CSECS);
+ break;
+ case(TS_PREC_FIXED_MSEC):
+ case(TS_PREC_AUTO_MSEC):
+ display_signed_time(cinfo->col_buf[col], COL_MAX_LEN,
+ (gint32) fd->del_cap_ts.secs, fd->del_cap_ts.nsecs / 1000000, MSECS);
+ break;
+ case(TS_PREC_FIXED_USEC):
+ case(TS_PREC_AUTO_USEC):
+ display_signed_time(cinfo->col_buf[col], COL_MAX_LEN,
+ (gint32) fd->del_cap_ts.secs, fd->del_cap_ts.nsecs / 1000, USECS);
+ break;
+ case(TS_PREC_FIXED_NSEC):
+ case(TS_PREC_AUTO_NSEC):
+ display_signed_time(cinfo->col_buf[col], COL_MAX_LEN,
+ (gint32) fd->del_cap_ts.secs, fd->del_cap_ts.nsecs, NSECS);
+ break;
+ default:
+ g_assert_not_reached();
+ }
cinfo->col_data[col] = cinfo->col_buf[col];
strcpy(cinfo->col_expr[col],"frame.time_delta");
strcpy(cinfo->col_expr_val[col],cinfo->col_buf[col]);
}
+static void
+col_set_delta_time_dis(frame_data *fd, column_info *cinfo, int col)
+{
+ COL_CHECK_REF_TIME(fd, cinfo, col);
+
+ switch(timestamp_get_precision()) {
+ case(TS_PREC_FIXED_SEC):
+ case(TS_PREC_AUTO_SEC):
+ display_signed_time(cinfo->col_buf[col], COL_MAX_LEN,
+ (gint32) fd->del_dis_ts.secs, fd->del_dis_ts.nsecs / 1000000000, SECS);
+ break;
+ case(TS_PREC_FIXED_DSEC):
+ case(TS_PREC_AUTO_DSEC):
+ display_signed_time(cinfo->col_buf[col], COL_MAX_LEN,
+ (gint32) fd->del_dis_ts.secs, fd->del_dis_ts.nsecs / 100000000, DSECS);
+ break;
+ case(TS_PREC_FIXED_CSEC):
+ case(TS_PREC_AUTO_CSEC):
+ display_signed_time(cinfo->col_buf[col], COL_MAX_LEN,
+ (gint32) fd->del_dis_ts.secs, fd->del_dis_ts.nsecs / 10000000, CSECS);
+ break;
+ case(TS_PREC_FIXED_MSEC):
+ case(TS_PREC_AUTO_MSEC):
+ display_signed_time(cinfo->col_buf[col], COL_MAX_LEN,
+ (gint32) fd->del_dis_ts.secs, fd->del_dis_ts.nsecs / 1000000, MSECS);
+ break;
+ case(TS_PREC_FIXED_USEC):
+ case(TS_PREC_AUTO_USEC):
+ display_signed_time(cinfo->col_buf[col], COL_MAX_LEN,
+ (gint32) fd->del_dis_ts.secs, fd->del_dis_ts.nsecs / 1000, USECS);
+ break;
+ case(TS_PREC_FIXED_NSEC):
+ case(TS_PREC_AUTO_NSEC):
+ display_signed_time(cinfo->col_buf[col], COL_MAX_LEN,
+ (gint32) fd->del_dis_ts.secs, fd->del_dis_ts.nsecs, NSECS);
+ break;
+ default:
+ g_assert_not_reached();
+ }
+ cinfo->col_data[col] = cinfo->col_buf[col];
+ strcpy(cinfo->col_expr[col],"frame.time_delta_displayed");
+ strcpy(cinfo->col_expr_val[col],cinfo->col_buf[col]);
+}
+
/* To do: Add check_col checks to the col_add* routines */
static void
struct tm *tmp;
time_t then;
- then = fd->abs_secs;
+ COL_CHECK_REF_TIME(fd, cinfo, col);
+
+ then = fd->abs_ts.secs;
tmp = localtime(&then);
if (tmp != NULL) {
- g_snprintf(cinfo->col_buf[col], COL_MAX_LEN, "%02d:%02d:%02d.%06ld",
+ switch(timestamp_get_precision()) {
+ case(TS_PREC_FIXED_SEC):
+ case(TS_PREC_AUTO_SEC):
+ g_snprintf(cinfo->col_buf[col], COL_MAX_LEN,
+ "%02d:%02d:%02d",
+ tmp->tm_hour,
+ tmp->tm_min,
+ tmp->tm_sec);
+ break;
+ case(TS_PREC_FIXED_DSEC):
+ case(TS_PREC_AUTO_DSEC):
+ g_snprintf(cinfo->col_buf[col], COL_MAX_LEN,
+ "%02d:%02d:%02d.%01ld",
+ tmp->tm_hour,
+ tmp->tm_min,
+ tmp->tm_sec,
+ (long)fd->abs_ts.nsecs / 100000000);
+ break;
+ case(TS_PREC_FIXED_CSEC):
+ case(TS_PREC_AUTO_CSEC):
+ g_snprintf(cinfo->col_buf[col], COL_MAX_LEN,
+ "%02d:%02d:%02d.%02ld",
tmp->tm_hour,
tmp->tm_min,
tmp->tm_sec,
- (long)fd->abs_usecs);
+ (long)fd->abs_ts.nsecs / 10000000);
+ break;
+ case(TS_PREC_FIXED_MSEC):
+ case(TS_PREC_AUTO_MSEC):
+ g_snprintf(cinfo->col_buf[col], COL_MAX_LEN,
+ "%02d:%02d:%02d.%03ld",
+ tmp->tm_hour,
+ tmp->tm_min,
+ tmp->tm_sec,
+ (long)fd->abs_ts.nsecs / 1000000);
+ break;
+ case(TS_PREC_FIXED_USEC):
+ case(TS_PREC_AUTO_USEC):
+ g_snprintf(cinfo->col_buf[col], COL_MAX_LEN,
+ "%02d:%02d:%02d.%06ld",
+ tmp->tm_hour,
+ tmp->tm_min,
+ tmp->tm_sec,
+ (long)fd->abs_ts.nsecs / 1000);
+ break;
+ case(TS_PREC_FIXED_NSEC):
+ case(TS_PREC_AUTO_NSEC):
+ g_snprintf(cinfo->col_buf[col], COL_MAX_LEN,
+ "%02d:%02d:%02d.%09ld",
+ tmp->tm_hour,
+ tmp->tm_min,
+ tmp->tm_sec,
+ (long)fd->abs_ts.nsecs);
+ break;
+ default:
+ g_assert_not_reached();
+ }
} else {
cinfo->col_buf[col][0] = '\0';
}
strcpy(cinfo->col_expr_val[col],cinfo->col_buf[col]);
}
-/* Add "command-line-specified" time.
+static void
+col_set_epoch_time(frame_data *fd, column_info *cinfo, int col)
+{
+
+ COL_CHECK_REF_TIME(fd, cinfo, col);
+
+ switch(timestamp_get_precision()) {
+ case(TS_PREC_FIXED_SEC):
+ case(TS_PREC_AUTO_SEC):
+ display_epoch_time(cinfo->col_buf[col], COL_MAX_LEN,
+ fd->abs_ts.secs, fd->abs_ts.nsecs / 1000000000, SECS);
+ break;
+ case(TS_PREC_FIXED_DSEC):
+ case(TS_PREC_AUTO_DSEC):
+ display_epoch_time(cinfo->col_buf[col], COL_MAX_LEN,
+ fd->abs_ts.secs, fd->abs_ts.nsecs / 100000000, DSECS);
+ break;
+ case(TS_PREC_FIXED_CSEC):
+ case(TS_PREC_AUTO_CSEC):
+ display_epoch_time(cinfo->col_buf[col], COL_MAX_LEN,
+ fd->abs_ts.secs, fd->abs_ts.nsecs / 10000000, CSECS);
+ break;
+ case(TS_PREC_FIXED_MSEC):
+ case(TS_PREC_AUTO_MSEC):
+ display_epoch_time(cinfo->col_buf[col], COL_MAX_LEN,
+ fd->abs_ts.secs, fd->abs_ts.nsecs / 1000000, MSECS);
+ break;
+ case(TS_PREC_FIXED_USEC):
+ case(TS_PREC_AUTO_USEC):
+ display_epoch_time(cinfo->col_buf[col], COL_MAX_LEN,
+ fd->abs_ts.secs, fd->abs_ts.nsecs / 1000, USECS);
+ break;
+ case(TS_PREC_FIXED_NSEC):
+ case(TS_PREC_AUTO_NSEC):
+ display_epoch_time(cinfo->col_buf[col], COL_MAX_LEN,
+ fd->abs_ts.secs, fd->abs_ts.nsecs, NSECS);
+ break;
+ default:
+ g_assert_not_reached();
+ }
+ cinfo->col_data[col] = cinfo->col_buf[col];
+ strcpy(cinfo->col_expr[col],"frame.time_delta");
+ strcpy(cinfo->col_expr_val[col],cinfo->col_buf[col]);
+}
+/* Set the format of the variable time format.
XXX - this is called from "file.c" when the user changes the time
format they want for "command-line-specified" time; it's a bit ugly
that we have to export it, but if we go to a CList-like widget that
requiring us to stuff the text into the widget from outside, we
might be able to clean this up. */
void
-col_set_cls_time(frame_data *fd, column_info *cinfo, int col)
+col_set_cls_time(frame_data *fd, column_info *cinfo, gint col)
{
- switch (get_timestamp_setting()) {
+ switch (timestamp_get_type()) {
case TS_ABSOLUTE:
col_set_abs_time(fd, cinfo, col);
break;
case TS_DELTA:
col_set_delta_time(fd, cinfo, col);
break;
+
+ case TS_DELTA_DIS:
+ col_set_delta_time_dis(fd, cinfo, col);
+ break;
+
+ case TS_EPOCH:
+ col_set_epoch_time(fd, cinfo, col);
+ break;
+
+ case TS_NOT_SET:
+ /* code is missing for this case, but I don't know which [jmayer20051219] */
+ g_assert(FALSE);
+ break;
}
}
pinfo->cinfo->col_expr[col][0] = '\0';
pinfo->cinfo->col_expr_val[col][0] = '\0';
-
+
if (addr->type == AT_NONE)
return; /* no address, nothing to do */
-
+
if (is_res) {
get_addr_name_buf(addr, pinfo->cinfo->col_buf[col],COL_MAX_LEN-1);
} else {
pinfo->cinfo->col_expr_val[col][COL_MAX_LEN - 1] = '\0';
break;
+ case PT_USB:
+ /* XXX - resolve USB endpoint numbers */
+ g_snprintf(pinfo->cinfo->col_buf[col], COL_MAX_LEN, "0x%08x", port);
+ if (is_src)
+ strcpy(pinfo->cinfo->col_expr[col], "usb.src.endpoint");
+ else
+ strcpy(pinfo->cinfo->col_expr[col], "usb.dst.endpoint");
+ g_snprintf(pinfo->cinfo->col_expr_val[col], COL_MAX_LEN, "0x%08x", port);
+ pinfo->cinfo->col_expr_val[col][COL_MAX_LEN - 1] = '\0';
+ break;
+
default:
break;
}
}
void
-fill_in_columns(packet_info *pinfo)
+col_fill_in(packet_info *pinfo)
{
int i;
break;
case COL_CLS_TIME:
- if(pinfo->fd->flags.ref_time){
- g_snprintf(pinfo->cinfo->col_buf[i], COL_MAX_LEN, "*REF*");
- pinfo->cinfo->col_data[i] = pinfo->cinfo->col_buf[i];
- } else {
- col_set_cls_time(pinfo->fd, pinfo->cinfo, i);
- }
+ col_set_cls_time(pinfo->fd, pinfo->cinfo, i);
break;
case COL_ABS_TIME:
- if(pinfo->fd->flags.ref_time){
- g_snprintf(pinfo->cinfo->col_buf[i], COL_MAX_LEN, "*REF*");
- pinfo->cinfo->col_data[i] = pinfo->cinfo->col_buf[i];
- } else {
- col_set_abs_time(pinfo->fd, pinfo->cinfo, i);
- }
+ col_set_abs_time(pinfo->fd, pinfo->cinfo, i);
break;
case COL_ABS_DATE_TIME:
- if(pinfo->fd->flags.ref_time){
- g_snprintf(pinfo->cinfo->col_buf[i], COL_MAX_LEN, "*REF*");
- pinfo->cinfo->col_data[i] = pinfo->cinfo->col_buf[i];
- } else {
- col_set_abs_date_time(pinfo->fd, pinfo->cinfo, i);
- }
+ col_set_abs_date_time(pinfo->fd, pinfo->cinfo, i);
break;
case COL_REL_TIME:
- if(pinfo->fd->flags.ref_time){
- g_snprintf(pinfo->cinfo->col_buf[i], COL_MAX_LEN, "*REF*");
- pinfo->cinfo->col_data[i] = pinfo->cinfo->col_buf[i];
- } else {
- col_set_rel_time(pinfo->fd, pinfo->cinfo, i);
- }
+ col_set_rel_time(pinfo->fd, pinfo->cinfo, i);
break;
case COL_DELTA_TIME:
- if(pinfo->fd->flags.ref_time){
- g_snprintf(pinfo->cinfo->col_buf[i], COL_MAX_LEN, "*REF*");
- pinfo->cinfo->col_data[i] = pinfo->cinfo->col_buf[i];
- } else {
- col_set_delta_time(pinfo->fd, pinfo->cinfo, i);
- }
+ col_set_delta_time(pinfo->fd, pinfo->cinfo, i);
+ break;
+
+ case COL_DELTA_TIME_DIS:
+ col_set_delta_time_dis(pinfo->fd, pinfo->cinfo, i);
break;
case COL_DEF_SRC:
pinfo->cinfo->col_buf[i][COL_MAX_LEN - 1] = '\0';
pinfo->cinfo->col_data[i] = pinfo->cinfo->col_buf[i];
break;
-
+
case COL_HPUX_SUBSYS: /* done by nettl disector */
case COL_HPUX_DEVID: /* done by nettl disector */
break;
-
+
case COL_DCE_CALL: /* done by dcerpc */
break;
+ case COL_DCE_CTX: /* done by dcerpc */
+ break;
+
+ case COL_8021Q_VLAN_ID:
+ break;
+
+ case COL_DSCP_VALUE: /* done by packet-ip.c */
+ break;
+
+ case COL_COS_VALUE: /* done by packet-vlan.c */
+ break;
+
+ case COL_FR_DLCI: /* done by packet-fr.c */
+ case COL_BSSGP_TLLI: /* done by packet-bssgp.c */
+ break;
+
+ case COL_EXPERT: /* done by expert.c */
+ break;
+
+ case COL_FREQ_CHAN: /* done by radio dissectors */
+ break;
+
case NUM_COL_FMTS: /* keep compiler happy - shouldn't get here */
g_assert_not_reached();
break;