]> The Tcpdump Group git mirrors - tcpdump/commitdiff
Refactor printing the time fractional part ({micro|nano}seconds)
authorFrancois-Xavier Le Bail <[email protected]>
Thu, 9 Aug 2018 11:25:23 +0000 (13:25 +0200)
committerFrancois-Xavier Le Bail <[email protected]>
Thu, 9 Aug 2018 12:14:25 +0000 (14:14 +0200)
Add the ts_frac_print() function.

Avoid almost duplicate code.

util-print.c

index 06844898d9caa28a4e592689fe91ce2fcdfd89b9..026f3461d4e37a2ace76d4af2e9932a357991ed7 100644 (file)
@@ -231,6 +231,32 @@ nd_printzp(netdissect_options *ndo,
        return (n == 0) ? 0 : ret;
 }
 
+/*
+ * Print the timestamp .FRAC part (Microseconds/nanoseconds)
+ */
+static void
+ts_frac_print(netdissect_options *ndo, int usec)
+{
+#ifdef HAVE_PCAP_SET_TSTAMP_PRECISION
+       switch (ndo->ndo_tstamp_precision) {
+
+       case PCAP_TSTAMP_PRECISION_MICRO:
+               ND_PRINT(".%06u", (unsigned)usec);
+               break;
+
+       case PCAP_TSTAMP_PRECISION_NANO:
+               ND_PRINT(".%09u", (unsigned)usec);
+               break;
+
+       default:
+               ND_PRINT(".{unknown}");
+               break;
+       }
+#else
+       ND_PRINT(".%06u", (unsigned)usec);
+#endif
+}
+
 /*
  * Print the timestamp as [YY:MM:DD] HH:MM:SS.FRAC.
  *   if time_flag == LOCAL_TIME print local time else UTC/GMT time
@@ -259,24 +285,7 @@ ts_date_hmsfrac_print(netdissect_options *ndo, int sec, int usec,
                strftime(timestr, sizeof(timestr), "%H:%M:%S", tm);
        ND_PRINT("%s", timestr);
 
-#ifdef HAVE_PCAP_SET_TSTAMP_PRECISION
-       switch (ndo->ndo_tstamp_precision) {
-
-       case PCAP_TSTAMP_PRECISION_MICRO:
-               ND_PRINT(".%06u", usec);
-               break;
-
-       case PCAP_TSTAMP_PRECISION_NANO:
-               ND_PRINT(".%09u", usec);
-               break;
-
-       default:
-               ND_PRINT(".{unknown}");
-               break;
-       }
-#else
-       ND_PRINT(".%06u", usec);
-#endif
+       ts_frac_print(ndo, usec);
 }
 
 /*
@@ -285,24 +294,8 @@ ts_date_hmsfrac_print(netdissect_options *ndo, int sec, int usec,
 static void
 ts_unix_print(netdissect_options *ndo, int sec, int usec)
 {
-#ifdef HAVE_PCAP_SET_TSTAMP_PRECISION
-       switch (ndo->ndo_tstamp_precision) {
-
-       case PCAP_TSTAMP_PRECISION_MICRO:
-               ND_PRINT("%u.%06u", (unsigned)sec, (unsigned)usec);
-               break;
-
-       case PCAP_TSTAMP_PRECISION_NANO:
-               ND_PRINT("%u.%09u", (unsigned)sec, (unsigned)usec);
-               break;
-
-       default:
-               ND_PRINT("%u.{unknown}", (unsigned)sec);
-               break;
-       }
-#else
-       ND_PRINT("%u.%06u", (unsigned)sec, (unsigned)usec);
-#endif
+       ND_PRINT("%u", (unsigned)sec);
+       ts_frac_print(ndo, usec);
 }
 
 /*