@@ -214,25 +214,25 @@ nd_printjnp(netdissect_options *ndo, const u_char *s, u_int n)
214
214
* Print the timestamp .FRAC part (Microseconds/nanoseconds)
215
215
*/
216
216
static void
217
- ts_frac_print (netdissect_options * ndo , long usec )
217
+ ts_frac_print (netdissect_options * ndo , const struct timeval * tv )
218
218
{
219
219
#ifdef HAVE_PCAP_SET_TSTAMP_PRECISION
220
220
switch (ndo -> ndo_tstamp_precision ) {
221
221
222
222
case PCAP_TSTAMP_PRECISION_MICRO :
223
- ND_PRINT (".%06u" , (unsigned )usec );
223
+ ND_PRINT (".%06u" , (unsigned )tv -> tv_usec );
224
224
break ;
225
225
226
226
case PCAP_TSTAMP_PRECISION_NANO :
227
- ND_PRINT (".%09u" , (unsigned )usec );
227
+ ND_PRINT (".%09u" , (unsigned )tv -> tv_usec );
228
228
break ;
229
229
230
230
default :
231
231
ND_PRINT (".{unknown}" );
232
232
break ;
233
233
}
234
234
#else
235
- ND_PRINT (".%06u" , (unsigned )usec );
235
+ ND_PRINT (".%06u" , (unsigned )tv -> tv_usec );
236
236
#endif
237
237
}
238
238
@@ -242,23 +242,22 @@ ts_frac_print(netdissect_options *ndo, long usec)
242
242
* if date_flag == WITH_DATE print YY:MM:DD before HH:MM:SS.FRAC
243
243
*/
244
244
static void
245
- ts_date_hmsfrac_print (netdissect_options * ndo , long sec , long usec ,
245
+ ts_date_hmsfrac_print (netdissect_options * ndo , const struct timeval * tv ,
246
246
enum date_flag date_flag , enum time_flag time_flag )
247
247
{
248
- time_t Time = sec ;
249
248
struct tm * tm ;
250
249
char timebuf [32 ];
251
250
const char * timestr ;
252
251
253
- if ((unsigned )sec & 0x80000000 ) {
252
+ if ((unsigned )tv -> tv_sec & 0x80000000 ) {
254
253
ND_PRINT ("[Error converting time]" );
255
254
return ;
256
255
}
257
256
258
257
if (time_flag == LOCAL_TIME )
259
- tm = localtime (& Time );
258
+ tm = localtime (& tv -> tv_sec );
260
259
else
261
- tm = gmtime (& Time );
260
+ tm = gmtime (& tv -> tv_sec );
262
261
263
262
if (date_flag == WITH_DATE ) {
264
263
timestr = nd_format_time (timebuf , sizeof (timebuf ),
@@ -269,22 +268,22 @@ ts_date_hmsfrac_print(netdissect_options *ndo, long sec, long usec,
269
268
}
270
269
ND_PRINT ("%s" , timestr );
271
270
272
- ts_frac_print (ndo , usec );
271
+ ts_frac_print (ndo , tv );
273
272
}
274
273
275
274
/*
276
275
* Print the timestamp - Unix timeval style, as SECS.FRAC.
277
276
*/
278
277
static void
279
- ts_unix_print (netdissect_options * ndo , long sec , long usec )
278
+ ts_unix_print (netdissect_options * ndo , const struct timeval * tv )
280
279
{
281
- if ((unsigned )sec & 0x80000000 ) {
280
+ if ((unsigned )tv -> tv_sec & 0x80000000 ) {
282
281
ND_PRINT ("[Error converting time]" );
283
282
return ;
284
283
}
285
284
286
- ND_PRINT ("%u" , (unsigned )sec );
287
- ts_frac_print (ndo , usec );
285
+ ND_PRINT ("%u" , (unsigned )tv -> tv_sec );
286
+ ts_frac_print (ndo , tv );
288
287
}
289
288
290
289
/*
@@ -302,16 +301,15 @@ ts_print(netdissect_options *ndo,
302
301
switch (ndo -> ndo_tflag ) {
303
302
304
303
case 0 : /* Default */
305
- ts_date_hmsfrac_print (ndo , tvp -> tv_sec , tvp -> tv_usec ,
306
- WITHOUT_DATE , LOCAL_TIME );
304
+ ts_date_hmsfrac_print (ndo , tvp , WITHOUT_DATE , LOCAL_TIME );
307
305
ND_PRINT (" " );
308
306
break ;
309
307
310
308
case 1 : /* No time stamp */
311
309
break ;
312
310
313
311
case 2 : /* Unix timeval style */
314
- ts_unix_print (ndo , tvp -> tv_sec , tvp -> tv_usec );
312
+ ts_unix_print (ndo , tvp );
315
313
ND_PRINT (" " );
316
314
break ;
317
315
@@ -342,17 +340,15 @@ ts_print(netdissect_options *ndo,
342
340
netdissect_timevalsub (tvp , & tv_ref , & tv_result , nano_prec );
343
341
344
342
ND_PRINT ((negative_offset ? "-" : " " ));
345
- ts_date_hmsfrac_print (ndo , tv_result .tv_sec , tv_result .tv_usec ,
346
- WITHOUT_DATE , UTC_TIME );
343
+ ts_date_hmsfrac_print (ndo , & tv_result , WITHOUT_DATE , UTC_TIME );
347
344
ND_PRINT (" " );
348
345
349
346
if (ndo -> ndo_tflag == 3 )
350
347
tv_ref = * tvp ; /* set timestamp for previous packet */
351
348
break ;
352
349
353
350
case 4 : /* Date + Default */
354
- ts_date_hmsfrac_print (ndo , tvp -> tv_sec , tvp -> tv_usec ,
355
- WITH_DATE , LOCAL_TIME );
351
+ ts_date_hmsfrac_print (ndo , tvp , WITH_DATE , LOCAL_TIME );
356
352
ND_PRINT (" " );
357
353
break ;
358
354
}
0 commit comments