ndp only deals with current localtime. Print time with subsecond
authorflorian <florian@openbsd.org>
Thu, 21 Jan 2021 19:12:13 +0000 (19:12 +0000)
committerflorian <florian@openbsd.org>
Thu, 21 Jan 2021 19:12:13 +0000 (19:12 +0000)
resolution in a less roundabout way.
OK phessler, bluhm

usr.sbin/ndp/Makefile
usr.sbin/ndp/gmt2local.c [deleted file]
usr.sbin/ndp/gmt2local.h [deleted file]
usr.sbin/ndp/ndp.c

index 454b8c7..20a9f07 100644 (file)
@@ -1,7 +1,6 @@
-# $OpenBSD: Makefile,v 1.4 2016/05/02 16:50:17 jca Exp $
+# $OpenBSD: Makefile,v 1.5 2021/01/21 19:12:13 florian Exp $
 
 PROG=  ndp
-SRCS=  ndp.c gmt2local.c
 MAN=   ndp.8
 
 .include <bsd.prog.mk>
diff --git a/usr.sbin/ndp/gmt2local.c b/usr.sbin/ndp/gmt2local.c
deleted file mode 100644 (file)
index 145ca94..0000000
+++ /dev/null
@@ -1,62 +0,0 @@
-/*     $OpenBSD: gmt2local.c,v 1.4 2013/08/09 17:52:12 bluhm Exp $     */
-
-/*
- * Copyright (c) 1997
- *     The Regents of the University of California.  All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that: (1) source code distributions
- * retain the above copyright notice and this paragraph in its entirety, (2)
- * distributions including binary code include the above copyright notice and
- * this paragraph in its entirety in the documentation or other materials
- * provided with the distribution, and (3) all advertising materials mentioning
- * features or use of this software display the following acknowledgement:
- * ``This product includes software developed by the University of California,
- * Lawrence Berkeley Laboratory and its contributors.'' Neither the name of
- * the University nor the names of its contributors may be used to endorse
- * or promote products derived from this software without specific prior
- * written permission.
- * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR IMPLIED
- * WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
- */
-
-#include <sys/types.h>
-#include <sys/time.h>
-
-#include <stdio.h>
-#include <time.h>
-
-#include "gmt2local.h"
-
-/*
- * Returns the difference between gmt and local time in seconds.
- * Use gmtime() and localtime() to keep things simple.
- */
-int32_t
-gmt2local(time_t t)
-{
-       register int dt, dir;
-       register struct tm *gmt, *loc;
-       struct tm sgmt;
-
-       if (t == 0)
-               t = time(NULL);
-       gmt = &sgmt;
-       *gmt = *gmtime(&t);
-       loc = localtime(&t);
-       dt = (loc->tm_hour - gmt->tm_hour) * 60 * 60 +
-           (loc->tm_min - gmt->tm_min) * 60;
-
-       /*
-        * If the year or julian day is different, we span 00:00 GMT
-        * and must add or subtract a day. Check the year first to
-        * avoid problems when the julian day wraps.
-        */
-       dir = loc->tm_year - gmt->tm_year;
-       if (dir == 0)
-               dir = loc->tm_yday - gmt->tm_yday;
-       dt += dir * 24 * 60 * 60;
-
-       return (dt);
-}
diff --git a/usr.sbin/ndp/gmt2local.h b/usr.sbin/ndp/gmt2local.h
deleted file mode 100644 (file)
index 07dada3..0000000
+++ /dev/null
@@ -1,28 +0,0 @@
-/*     $OpenBSD: gmt2local.h,v 1.3 2008/10/02 23:55:18 deraadt Exp $   */
-
-/*
- * Copyright (c) 1997
- *     The Regents of the University of California.  All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that: (1) source code distributions
- * retain the above copyright notice and this paragraph in its entirety, (2)
- * distributions including binary code include the above copyright notice and
- * this paragraph in its entirety in the documentation or other materials
- * provided with the distribution, and (3) all advertising materials mentioning
- * features or use of this software display the following acknowledgement:
- * ``This product includes software developed by the University of California,
- * Lawrence Berkeley Laboratory and its contributors.'' Neither the name of
- * the University nor the names of its contributors may be used to endorse
- * or promote products derived from this software without specific prior
- * written permission.
- * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR IMPLIED
- * WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
- *
- */
-#ifndef gmt2local_h
-#define gmt2local_h
-
-int32_t gmt2local(time_t);
-#endif
index 04f72ad..adf56c5 100644 (file)
@@ -1,4 +1,4 @@
-/*     $OpenBSD: ndp.c,v 1.99 2019/12/19 18:36:37 bluhm Exp $  */
+/*     $OpenBSD: ndp.c,v 1.100 2021/01/21 19:12:13 florian Exp $       */
 /*     $KAME: ndp.c,v 1.101 2002/07/17 08:46:33 itojun Exp $   */
 
 /*
 #include <limits.h>
 #include <err.h>
 
-#include "gmt2local.h"
-
 /* packing rule for routing socket */
 #define ROUNDUP(a) \
        ((a) > 0 ? (1 + (((a) - 1) | (sizeof(long) - 1))) : sizeof(long))
 static pid_t pid;
 static int nflag;
 static int tflag;
-static int32_t thiszone;       /* time difference with gmt */
 static int rtsock = -1;
 static int repeat = 0;
 
@@ -147,7 +144,6 @@ main(int argc, char *argv[])
        const char      *errstr;
 
        pid = getpid();
-       thiszone = gmt2local(0);
        rdomain = getrtable();
        while ((ch = getopt(argc, argv, "acd:f:i:nstA:V:")) != -1) {
                switch (ch) {
@@ -583,8 +579,16 @@ again:;
                        continue;
                }
                gettimeofday(&now, 0);
-               if (tflag)
-                       ts_print(&now);
+               if (tflag) {
+                       char buf[sizeof("00:00:00")];
+                       struct tm *tm;
+
+                       tm = localtime(&now.tv_sec);
+                       if (tm != NULL) {
+                               strftime(buf, sizeof(buf), "%H:%M:%S", tm);
+                               printf("%s.%06ld ", buf, now.tv_usec);
+                       }
+               }
 
                addrwidth = strlen(host_buf);
                if (addrwidth < W_ADDR)
@@ -909,18 +913,3 @@ sec2str(time_t total)
 
        return(result);
 }
-
-/*
- * Print the timestamp
- * from tcpdump/util.c
- */
-static void
-ts_print(const struct timeval *tvp)
-{
-       int s;
-
-       /* Default */
-       s = (tvp->tv_sec + thiszone) % 86400;
-       (void)printf("%02d:%02d:%02d.%06u ",
-           s / 3600, (s % 3600) / 60, s % 60, (u_int32_t)tvp->tv_usec);
-}