diff options
author | Guy Harris <guy@alum.mit.edu> | 2014-09-28 11:37:06 -0700 |
---|---|---|
committer | Guy Harris <guy@alum.mit.edu> | 2014-09-28 18:38:18 +0000 |
commit | 54b733ce9a0d1cd4ab9b142479368a5e696360be (patch) | |
tree | 1c98ec83c70ba99b383105516048d0254168d855 /epan/column-utils.c | |
parent | efea8ce1c6a4331bc2ff7090dd3dadd2a80f6d86 (diff) | |
download | wireshark-54b733ce9a0d1cd4ab9b142479368a5e696360be.tar.gz wireshark-54b733ce9a0d1cd4ab9b142479368a5e696360be.tar.bz2 wireshark-54b733ce9a0d1cd4ab9b142479368a5e696360be.zip |
Make the time stamp resolution per-packet.
Pcap-ng files don't have a per-file time stamp resolution, they have a
per-interface time stamp resolution. Add new time stamp resolution
types of "unknown" and "per-packet", add the time stamp resolution to
struct wtap_pkthdr, have the libwiretap core initialize it to the
per-file time stamp resolution, and have pcap-ng do the same thing with
the resolution that it does with the packet encapsulation.
Get rid of the TS_PREC_AUTO_XXX values; just have TS_PREC_AUTO, which
means "use the packet's resolution to determine how many significant
digits to display". Rename all the WTAP_FILE_TSPREC_XXX values to
WTAP_TSPREC_XXX, as they're also used for per-packet values.
Change-Id: If9fd8f799b19836a5104aaa0870a951498886c69
Reviewed-on: https://code.wireshark.org/review/4349
Reviewed-by: Guy Harris <guy@alum.mit.edu>
Diffstat (limited to 'epan/column-utils.c')
-rw-r--r-- | epan/column-utils.c | 295 |
1 files changed, 206 insertions, 89 deletions
diff --git a/epan/column-utils.c b/epan/column-utils.c index f27e4702c4..8721dbfb19 100644 --- a/epan/column-utils.c +++ b/epan/column-utils.c @@ -757,6 +757,7 @@ set_abs_ymd_time(const frame_data *fd, gchar *buf, gboolean local) { struct tm *tmp; time_t then; + int tsprecision; if (fd->flags.has_ts) { then = fd->abs_ts.secs; @@ -769,7 +770,31 @@ set_abs_ymd_time(const frame_data *fd, gchar *buf, gboolean local) if (tmp != NULL) { switch (timestamp_get_precision()) { case TS_PREC_FIXED_SEC: - case TS_PREC_AUTO_SEC: + tsprecision = WTAP_TSPREC_SEC; + break; + case TS_PREC_FIXED_DSEC: + tsprecision = WTAP_TSPREC_DSEC; + break; + case TS_PREC_FIXED_CSEC: + tsprecision = WTAP_TSPREC_CSEC; + break; + case TS_PREC_FIXED_MSEC: + tsprecision = WTAP_TSPREC_MSEC; + break; + case TS_PREC_FIXED_USEC: + tsprecision = WTAP_TSPREC_USEC; + break; + case TS_PREC_FIXED_NSEC: + tsprecision = WTAP_TSPREC_NSEC; + break; + case TS_PREC_AUTO: + tsprecision = fd->tsprec; + break; + default: + g_assert_not_reached(); + } + switch (tsprecision) { + case WTAP_TSPREC_SEC: g_snprintf(buf, COL_MAX_LEN,"%04d-%02d-%02d %02d:%02d:%02d", tmp->tm_year + 1900, tmp->tm_mon + 1, @@ -778,8 +803,7 @@ set_abs_ymd_time(const frame_data *fd, gchar *buf, gboolean local) tmp->tm_min, tmp->tm_sec); break; - case TS_PREC_FIXED_DSEC: - case TS_PREC_AUTO_DSEC: + case WTAP_TSPREC_DSEC: g_snprintf(buf, COL_MAX_LEN,"%04d-%02d-%02d %02d:%02d:%02d.%01d", tmp->tm_year + 1900, tmp->tm_mon + 1, @@ -789,8 +813,7 @@ set_abs_ymd_time(const frame_data *fd, gchar *buf, gboolean local) tmp->tm_sec, fd->abs_ts.nsecs / 100000000); break; - case TS_PREC_FIXED_CSEC: - case TS_PREC_AUTO_CSEC: + case WTAP_TSPREC_CSEC: g_snprintf(buf, COL_MAX_LEN,"%04d-%02d-%02d %02d:%02d:%02d.%02d", tmp->tm_year + 1900, tmp->tm_mon + 1, @@ -800,8 +823,7 @@ set_abs_ymd_time(const frame_data *fd, gchar *buf, gboolean local) tmp->tm_sec, fd->abs_ts.nsecs / 10000000); break; - case TS_PREC_FIXED_MSEC: - case TS_PREC_AUTO_MSEC: + case WTAP_TSPREC_MSEC: g_snprintf(buf, COL_MAX_LEN, "%04d-%02d-%02d %02d:%02d:%02d.%03d", tmp->tm_year + 1900, tmp->tm_mon + 1, @@ -811,8 +833,7 @@ set_abs_ymd_time(const frame_data *fd, gchar *buf, gboolean local) tmp->tm_sec, fd->abs_ts.nsecs / 1000000); break; - case TS_PREC_FIXED_USEC: - case TS_PREC_AUTO_USEC: + case WTAP_TSPREC_USEC: g_snprintf(buf, COL_MAX_LEN, "%04d-%02d-%02d %02d:%02d:%02d.%06d", tmp->tm_year + 1900, tmp->tm_mon + 1, @@ -822,8 +843,7 @@ set_abs_ymd_time(const frame_data *fd, gchar *buf, gboolean local) tmp->tm_sec, fd->abs_ts.nsecs / 1000); break; - case TS_PREC_FIXED_NSEC: - case TS_PREC_AUTO_NSEC: + case WTAP_TSPREC_NSEC: g_snprintf(buf, COL_MAX_LEN, "%04d-%02d-%02d %02d:%02d:%02d.%09d", tmp->tm_year + 1900, tmp->tm_mon + 1, @@ -866,6 +886,7 @@ set_abs_ydoy_time(const frame_data *fd, gchar *buf, gboolean local) { struct tm *tmp; time_t then; + int tsprecision; if (fd->flags.has_ts) { then = fd->abs_ts.secs; @@ -878,7 +899,31 @@ set_abs_ydoy_time(const frame_data *fd, gchar *buf, gboolean local) if (tmp != NULL) { switch (timestamp_get_precision()) { case TS_PREC_FIXED_SEC: - case TS_PREC_AUTO_SEC: + tsprecision = WTAP_TSPREC_SEC; + break; + case TS_PREC_FIXED_DSEC: + tsprecision = WTAP_TSPREC_DSEC; + break; + case TS_PREC_FIXED_CSEC: + tsprecision = WTAP_TSPREC_CSEC; + break; + case TS_PREC_FIXED_MSEC: + tsprecision = WTAP_TSPREC_MSEC; + break; + case TS_PREC_FIXED_USEC: + tsprecision = WTAP_TSPREC_USEC; + break; + case TS_PREC_FIXED_NSEC: + tsprecision = WTAP_TSPREC_NSEC; + break; + case TS_PREC_AUTO: + tsprecision = fd->tsprec; + break; + default: + g_assert_not_reached(); + } + switch (tsprecision) { + case WTAP_TSPREC_SEC: g_snprintf(buf, COL_MAX_LEN,"%04d/%03d %02d:%02d:%02d", tmp->tm_year + 1900, tmp->tm_yday + 1, @@ -886,8 +931,7 @@ set_abs_ydoy_time(const frame_data *fd, gchar *buf, gboolean local) tmp->tm_min, tmp->tm_sec); break; - case TS_PREC_FIXED_DSEC: - case TS_PREC_AUTO_DSEC: + case WTAP_TSPREC_DSEC: g_snprintf(buf, COL_MAX_LEN,"%04d/%03d %02d:%02d:%02d.%01d", tmp->tm_year + 1900, tmp->tm_yday + 1, @@ -896,8 +940,7 @@ set_abs_ydoy_time(const frame_data *fd, gchar *buf, gboolean local) tmp->tm_sec, fd->abs_ts.nsecs / 100000000); break; - case TS_PREC_FIXED_CSEC: - case TS_PREC_AUTO_CSEC: + case WTAP_TSPREC_CSEC: g_snprintf(buf, COL_MAX_LEN,"%04d/%03d %02d:%02d:%02d.%02d", tmp->tm_year + 1900, tmp->tm_yday + 1, @@ -906,8 +949,7 @@ set_abs_ydoy_time(const frame_data *fd, gchar *buf, gboolean local) tmp->tm_sec, fd->abs_ts.nsecs / 10000000); break; - case TS_PREC_FIXED_MSEC: - case TS_PREC_AUTO_MSEC: + case WTAP_TSPREC_MSEC: g_snprintf(buf, COL_MAX_LEN, "%04d/%03d %02d:%02d:%02d.%03d", tmp->tm_year + 1900, tmp->tm_yday + 1, @@ -916,8 +958,7 @@ set_abs_ydoy_time(const frame_data *fd, gchar *buf, gboolean local) tmp->tm_sec, fd->abs_ts.nsecs / 1000000); break; - case TS_PREC_FIXED_USEC: - case TS_PREC_AUTO_USEC: + case WTAP_TSPREC_USEC: g_snprintf(buf, COL_MAX_LEN, "%04d/%03d %02d:%02d:%02d.%06d", tmp->tm_year + 1900, tmp->tm_yday + 1, @@ -926,8 +967,7 @@ set_abs_ydoy_time(const frame_data *fd, gchar *buf, gboolean local) tmp->tm_sec, fd->abs_ts.nsecs / 1000); break; - case TS_PREC_FIXED_NSEC: - case TS_PREC_AUTO_NSEC: + case WTAP_TSPREC_NSEC: g_snprintf(buf, COL_MAX_LEN, "%04d/%03d %02d:%02d:%02d.%09d", tmp->tm_year + 1900, tmp->tm_yday + 1, @@ -965,36 +1005,57 @@ col_set_utc_ydoy_time(const frame_data *fd, column_info *cinfo, const int col) } static void -set_time_seconds(const nstime_t *ts, gchar *buf) +set_time_seconds(const frame_data *fd, const nstime_t *ts, gchar *buf) { + int tsprecision; + switch (timestamp_get_precision()) { case TS_PREC_FIXED_SEC: - case TS_PREC_AUTO_SEC: + tsprecision = WTAP_TSPREC_SEC; + break; + case TS_PREC_FIXED_DSEC: + tsprecision = WTAP_TSPREC_DSEC; + break; + case TS_PREC_FIXED_CSEC: + tsprecision = WTAP_TSPREC_CSEC; + break; + case TS_PREC_FIXED_MSEC: + tsprecision = WTAP_TSPREC_MSEC; + break; + case TS_PREC_FIXED_USEC: + tsprecision = WTAP_TSPREC_USEC; + break; + case TS_PREC_FIXED_NSEC: + tsprecision = WTAP_TSPREC_NSEC; + break; + case TS_PREC_AUTO: + tsprecision = fd->tsprec; + break; + default: + g_assert_not_reached(); + } + switch (tsprecision) { + case WTAP_TSPREC_SEC: display_signed_time(buf, COL_MAX_LEN, (gint32) ts->secs, ts->nsecs / 1000000000, TO_STR_TIME_RES_T_SECS); break; - case TS_PREC_FIXED_DSEC: - case TS_PREC_AUTO_DSEC: + case WTAP_TSPREC_DSEC: display_signed_time(buf, COL_MAX_LEN, (gint32) ts->secs, ts->nsecs / 100000000, TO_STR_TIME_RES_T_DSECS); break; - case TS_PREC_FIXED_CSEC: - case TS_PREC_AUTO_CSEC: + case WTAP_TSPREC_CSEC: display_signed_time(buf, COL_MAX_LEN, (gint32) ts->secs, ts->nsecs / 10000000, TO_STR_TIME_RES_T_CSECS); break; - case TS_PREC_FIXED_MSEC: - case TS_PREC_AUTO_MSEC: + case WTAP_TSPREC_MSEC: display_signed_time(buf, COL_MAX_LEN, (gint32) ts->secs, ts->nsecs / 1000000, TO_STR_TIME_RES_T_MSECS); break; - case TS_PREC_FIXED_USEC: - case TS_PREC_AUTO_USEC: + case WTAP_TSPREC_USEC: display_signed_time(buf, COL_MAX_LEN, (gint32) ts->secs, ts->nsecs / 1000, TO_STR_TIME_RES_T_USECS); break; - case TS_PREC_FIXED_NSEC: - case TS_PREC_AUTO_NSEC: + case WTAP_TSPREC_NSEC: display_signed_time(buf, COL_MAX_LEN, (gint32) ts->secs, ts->nsecs, TO_STR_TIME_RES_T_NSECS); break; @@ -1004,11 +1065,12 @@ set_time_seconds(const nstime_t *ts, gchar *buf) } static void -set_time_hour_min_sec(const nstime_t *ts, gchar *buf) +set_time_hour_min_sec(const frame_data *fd, const nstime_t *ts, gchar *buf) { time_t secs = ts->secs; long nsecs = (long) ts->nsecs; gboolean negative = FALSE; + int tsprecision; if (secs < 0) { secs = -secs; @@ -1021,7 +1083,31 @@ set_time_hour_min_sec(const nstime_t *ts, gchar *buf) switch (timestamp_get_precision()) { case TS_PREC_FIXED_SEC: - case TS_PREC_AUTO_SEC: + tsprecision = WTAP_TSPREC_SEC; + break; + case TS_PREC_FIXED_DSEC: + tsprecision = WTAP_TSPREC_DSEC; + break; + case TS_PREC_FIXED_CSEC: + tsprecision = WTAP_TSPREC_CSEC; + break; + case TS_PREC_FIXED_MSEC: + tsprecision = WTAP_TSPREC_MSEC; + break; + case TS_PREC_FIXED_USEC: + tsprecision = WTAP_TSPREC_USEC; + break; + case TS_PREC_FIXED_NSEC: + tsprecision = WTAP_TSPREC_NSEC; + break; + case TS_PREC_AUTO: + tsprecision = fd->tsprec; + break; + default: + g_assert_not_reached(); + } + switch (tsprecision) { + case WTAP_TSPREC_SEC: if (secs >= (60*60)) { g_snprintf(buf, COL_MAX_LEN, "%s%dh %2dm %2ds", negative ? "- " : "", @@ -1039,8 +1125,7 @@ set_time_hour_min_sec(const nstime_t *ts, gchar *buf) (gint32) secs); } break; - case TS_PREC_FIXED_DSEC: - case TS_PREC_AUTO_DSEC: + case WTAP_TSPREC_DSEC: if (secs >= (60*60)) { g_snprintf(buf, COL_MAX_LEN, "%s%dh %2dm %2d.%01lds", negative ? "- " : "", @@ -1061,8 +1146,7 @@ set_time_hour_min_sec(const nstime_t *ts, gchar *buf) nsecs / 100000000); } break; - case TS_PREC_FIXED_CSEC: - case TS_PREC_AUTO_CSEC: + case WTAP_TSPREC_CSEC: if (secs >= (60*60)) { g_snprintf(buf, COL_MAX_LEN, "%s%dh %2dm %2d.%02lds", negative ? "- " : "", @@ -1083,8 +1167,7 @@ set_time_hour_min_sec(const nstime_t *ts, gchar *buf) nsecs / 10000000); } break; - case TS_PREC_FIXED_MSEC: - case TS_PREC_AUTO_MSEC: + case WTAP_TSPREC_MSEC: if (secs >= (60*60)) { g_snprintf(buf, COL_MAX_LEN, "%s%dh %2dm %2d.%03lds", negative ? "- " : "", @@ -1105,8 +1188,7 @@ set_time_hour_min_sec(const nstime_t *ts, gchar *buf) nsecs / 1000000); } break; - case TS_PREC_FIXED_USEC: - case TS_PREC_AUTO_USEC: + case WTAP_TSPREC_USEC: if (secs >= (60*60)) { g_snprintf(buf, COL_MAX_LEN, "%s%dh %2dm %2d.%06lds", negative ? "- " : "", @@ -1127,8 +1209,7 @@ set_time_hour_min_sec(const nstime_t *ts, gchar *buf) nsecs / 1000); } break; - case TS_PREC_FIXED_NSEC: - case TS_PREC_AUTO_NSEC: + case WTAP_TSPREC_NSEC: if (secs >= (60*60)) { g_snprintf(buf, COL_MAX_LEN, "%s%dh %2dm %2d.%09lds", negative ? "- " : "", @@ -1168,14 +1249,14 @@ col_set_rel_time(const frame_data *fd, column_info *cinfo, const int col) switch (timestamp_get_seconds_type()) { case TS_SECONDS_DEFAULT: - set_time_seconds(&del_rel_ts, cinfo->col_buf[col]); + set_time_seconds(fd, &del_rel_ts, cinfo->col_buf[col]); cinfo->col_expr.col_expr[col] = "frame.time_relative"; g_strlcpy(cinfo->col_expr.col_expr_val[col],cinfo->col_buf[col],COL_MAX_LEN); break; case TS_SECONDS_HOUR_MIN_SEC: - set_time_hour_min_sec(&del_rel_ts, cinfo->col_buf[col]); + set_time_hour_min_sec(fd, &del_rel_ts, cinfo->col_buf[col]); cinfo->col_expr.col_expr[col] = "frame.time_relative"; - set_time_seconds(&del_rel_ts, cinfo->col_expr.col_expr_val[col]); + set_time_seconds(fd, &del_rel_ts, cinfo->col_expr.col_expr_val[col]); break; default: g_assert_not_reached(); @@ -1192,14 +1273,14 @@ col_set_delta_time(const frame_data *fd, column_info *cinfo, const int col) switch (timestamp_get_seconds_type()) { case TS_SECONDS_DEFAULT: - set_time_seconds(&del_cap_ts, cinfo->col_buf[col]); + set_time_seconds(fd, &del_cap_ts, cinfo->col_buf[col]); cinfo->col_expr.col_expr[col] = "frame.time_delta"; g_strlcpy(cinfo->col_expr.col_expr_val[col],cinfo->col_buf[col],COL_MAX_LEN); break; case TS_SECONDS_HOUR_MIN_SEC: - set_time_hour_min_sec(&del_cap_ts, cinfo->col_buf[col]); + set_time_hour_min_sec(fd, &del_cap_ts, cinfo->col_buf[col]); cinfo->col_expr.col_expr[col] = "frame.time_delta"; - set_time_seconds(&del_cap_ts, cinfo->col_expr.col_expr_val[col]); + set_time_seconds(fd, &del_cap_ts, cinfo->col_expr.col_expr_val[col]); break; default: g_assert_not_reached(); @@ -1222,14 +1303,14 @@ col_set_delta_time_dis(const frame_data *fd, column_info *cinfo, const int col) switch (timestamp_get_seconds_type()) { case TS_SECONDS_DEFAULT: - set_time_seconds(&del_dis_ts, cinfo->col_buf[col]); + set_time_seconds(fd, &del_dis_ts, cinfo->col_buf[col]); cinfo->col_expr.col_expr[col] = "frame.time_delta_displayed"; g_strlcpy(cinfo->col_expr.col_expr_val[col],cinfo->col_buf[col],COL_MAX_LEN); break; case TS_SECONDS_HOUR_MIN_SEC: - set_time_hour_min_sec(&del_dis_ts, cinfo->col_buf[col]); + set_time_hour_min_sec(fd, &del_dis_ts, cinfo->col_buf[col]); cinfo->col_expr.col_expr[col] = "frame.time_delta_displayed"; - set_time_seconds(&del_dis_ts, cinfo->col_expr.col_expr_val[col]); + set_time_seconds(fd, &del_dis_ts, cinfo->col_expr.col_expr_val[col]); break; default: g_assert_not_reached(); @@ -1243,6 +1324,7 @@ set_abs_time(const frame_data *fd, gchar *buf, gboolean local) { struct tm *tmp; time_t then; + int tsprecision; if (fd->flags.has_ts) { then = fd->abs_ts.secs; @@ -1255,46 +1337,65 @@ set_abs_time(const frame_data *fd, gchar *buf, gboolean local) if (tmp != NULL) { switch (timestamp_get_precision()) { case TS_PREC_FIXED_SEC: - case TS_PREC_AUTO_SEC: + tsprecision = WTAP_TSPREC_SEC; + break; + case TS_PREC_FIXED_DSEC: + tsprecision = WTAP_TSPREC_DSEC; + break; + case TS_PREC_FIXED_CSEC: + tsprecision = WTAP_TSPREC_CSEC; + break; + case TS_PREC_FIXED_MSEC: + tsprecision = WTAP_TSPREC_MSEC; + break; + case TS_PREC_FIXED_USEC: + tsprecision = WTAP_TSPREC_USEC; + break; + case TS_PREC_FIXED_NSEC: + tsprecision = WTAP_TSPREC_NSEC; + break; + case TS_PREC_AUTO: + tsprecision = fd->tsprec; + break; + default: + g_assert_not_reached(); + } + switch (tsprecision) { + case WTAP_TSPREC_SEC: g_snprintf(buf, 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: + case WTAP_TSPREC_DSEC: g_snprintf(buf, COL_MAX_LEN,"%02d:%02d:%02d.%01d", tmp->tm_hour, tmp->tm_min, tmp->tm_sec, fd->abs_ts.nsecs / 100000000); break; - case TS_PREC_FIXED_CSEC: - case TS_PREC_AUTO_CSEC: + case WTAP_TSPREC_CSEC: g_snprintf(buf, COL_MAX_LEN,"%02d:%02d:%02d.%02d", tmp->tm_hour, tmp->tm_min, tmp->tm_sec, fd->abs_ts.nsecs / 10000000); break; - case TS_PREC_FIXED_MSEC: - case TS_PREC_AUTO_MSEC: + case WTAP_TSPREC_MSEC: g_snprintf(buf, COL_MAX_LEN,"%02d:%02d:%02d.%03d", tmp->tm_hour, tmp->tm_min, tmp->tm_sec, fd->abs_ts.nsecs / 1000000); break; - case TS_PREC_FIXED_USEC: - case TS_PREC_AUTO_USEC: + case WTAP_TSPREC_USEC: g_snprintf(buf, COL_MAX_LEN,"%02d:%02d:%02d.%06d", tmp->tm_hour, tmp->tm_min, tmp->tm_sec, fd->abs_ts.nsecs / 1000); break; - case TS_PREC_FIXED_NSEC: - case TS_PREC_AUTO_NSEC: + case WTAP_TSPREC_NSEC: g_snprintf(buf, COL_MAX_LEN, "%02d:%02d:%02d.%09d", tmp->tm_hour, tmp->tm_min, @@ -1333,38 +1434,59 @@ col_set_utc_time(const frame_data *fd, column_info *cinfo, const int col) static gboolean set_epoch_time(const frame_data *fd, gchar *buf) { + int tsprecision; + if (!fd->flags.has_ts) { buf[0] = '\0'; return FALSE; } switch (timestamp_get_precision()) { case TS_PREC_FIXED_SEC: - case TS_PREC_AUTO_SEC: + tsprecision = WTAP_TSPREC_SEC; + break; + case TS_PREC_FIXED_DSEC: + tsprecision = WTAP_TSPREC_DSEC; + break; + case TS_PREC_FIXED_CSEC: + tsprecision = WTAP_TSPREC_CSEC; + break; + case TS_PREC_FIXED_MSEC: + tsprecision = WTAP_TSPREC_MSEC; + break; + case TS_PREC_FIXED_USEC: + tsprecision = WTAP_TSPREC_USEC; + break; + case TS_PREC_FIXED_NSEC: + tsprecision = WTAP_TSPREC_NSEC; + break; + case TS_PREC_AUTO: + tsprecision = fd->tsprec; + break; + default: + g_assert_not_reached(); + } + switch (tsprecision) { + case WTAP_TSPREC_SEC: display_epoch_time(buf, COL_MAX_LEN, fd->abs_ts.secs, fd->abs_ts.nsecs / 1000000000, TO_STR_TIME_RES_T_SECS); break; - case TS_PREC_FIXED_DSEC: - case TS_PREC_AUTO_DSEC: + case WTAP_TSPREC_DSEC: display_epoch_time(buf, COL_MAX_LEN, fd->abs_ts.secs, fd->abs_ts.nsecs / 100000000, TO_STR_TIME_RES_T_DSECS); break; - case TS_PREC_FIXED_CSEC: - case TS_PREC_AUTO_CSEC: + case WTAP_TSPREC_CSEC: display_epoch_time(buf, COL_MAX_LEN, fd->abs_ts.secs, fd->abs_ts.nsecs / 10000000, TO_STR_TIME_RES_T_CSECS); break; - case TS_PREC_FIXED_MSEC: - case TS_PREC_AUTO_MSEC: + case WTAP_TSPREC_MSEC: display_epoch_time(buf, COL_MAX_LEN, fd->abs_ts.secs, fd->abs_ts.nsecs / 1000000, TO_STR_TIME_RES_T_MSECS); break; - case TS_PREC_FIXED_USEC: - case TS_PREC_AUTO_USEC: + case WTAP_TSPREC_USEC: display_epoch_time(buf, COL_MAX_LEN, fd->abs_ts.secs, fd->abs_ts.nsecs / 1000, TO_STR_TIME_RES_T_USECS); break; - case TS_PREC_FIXED_NSEC: - case TS_PREC_AUTO_NSEC: + case WTAP_TSPREC_NSEC: display_epoch_time(buf, COL_MAX_LEN, fd->abs_ts.secs, fd->abs_ts.nsecs, TO_STR_TIME_RES_T_NSECS); break; @@ -1409,10 +1531,10 @@ set_fd_time(const epan_t *epan, frame_data *fd, gchar *buf) switch (timestamp_get_seconds_type()) { case TS_SECONDS_DEFAULT: - set_time_seconds(&del_rel_ts, buf); + set_time_seconds(fd, &del_rel_ts, buf); break; case TS_SECONDS_HOUR_MIN_SEC: - set_time_seconds(&del_rel_ts, buf); + set_time_seconds(fd, &del_rel_ts, buf); break; default: g_assert_not_reached(); @@ -1430,10 +1552,10 @@ set_fd_time(const epan_t *epan, frame_data *fd, gchar *buf) switch (timestamp_get_seconds_type()) { case TS_SECONDS_DEFAULT: - set_time_seconds(&del_cap_ts, buf); + set_time_seconds(fd, &del_cap_ts, buf); break; case TS_SECONDS_HOUR_MIN_SEC: - set_time_hour_min_sec(&del_cap_ts, buf); + set_time_hour_min_sec(fd, &del_cap_ts, buf); break; default: g_assert_not_reached(); @@ -1451,10 +1573,10 @@ set_fd_time(const epan_t *epan, frame_data *fd, gchar *buf) switch (timestamp_get_seconds_type()) { case TS_SECONDS_DEFAULT: - set_time_seconds(&del_dis_ts, buf); + set_time_seconds(fd, &del_dis_ts, buf); break; case TS_SECONDS_HOUR_MIN_SEC: - set_time_hour_min_sec(&del_dis_ts, buf); + set_time_hour_min_sec(fd, &del_dis_ts, buf); break; default: g_assert_not_reached(); @@ -1619,32 +1741,27 @@ col_set_time(column_info *cinfo, const gint el, const nstime_t *ts, const char * if (cinfo->fmt_matx[col][el]) { 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) ts->secs, ts->nsecs / 1000000000, TO_STR_TIME_RES_T_SECS); break; case TS_PREC_FIXED_DSEC: - case TS_PREC_AUTO_DSEC: display_signed_time(cinfo->col_buf[col], COL_MAX_LEN, (gint32) ts->secs, ts->nsecs / 100000000, TO_STR_TIME_RES_T_DSECS); break; case TS_PREC_FIXED_CSEC: - case TS_PREC_AUTO_CSEC: display_signed_time(cinfo->col_buf[col], COL_MAX_LEN, (gint32) ts->secs, ts->nsecs / 10000000, TO_STR_TIME_RES_T_CSECS); break; case TS_PREC_FIXED_MSEC: - case TS_PREC_AUTO_MSEC: display_signed_time(cinfo->col_buf[col], COL_MAX_LEN, (gint32) ts->secs, ts->nsecs / 1000000, TO_STR_TIME_RES_T_MSECS); break; case TS_PREC_FIXED_USEC: - case TS_PREC_AUTO_USEC: display_signed_time(cinfo->col_buf[col], COL_MAX_LEN, (gint32) ts->secs, ts->nsecs / 1000, TO_STR_TIME_RES_T_USECS); break; case TS_PREC_FIXED_NSEC: - case TS_PREC_AUTO_NSEC: + case TS_PREC_AUTO: /* default to maximum */ display_signed_time(cinfo->col_buf[col], COL_MAX_LEN, (gint32) ts->secs, ts->nsecs, TO_STR_TIME_RES_T_NSECS); break; |