]> The Tcpdump Group git mirrors - tcpdump/blobdiff - util.c
Enhanced PIMv1 support.
[tcpdump] / util.c
diff --git a/util.c b/util.c
index e830a0846eb45afba4942825ba8136c9ebae73f2..326eae497f5bd0d4e566a9a14022cef6e9da6c43 100644 (file)
--- a/util.c
+++ b/util.c
@@ -21,7 +21,7 @@
 
 #ifndef lint
 static const char rcsid[] =
-    "@(#) $Header: /tcpdump/master/tcpdump/util.c,v 1.60 1999-11-21 09:37:05 fenner Exp $ (LBL)";
+    "@(#) $Header: /tcpdump/master/tcpdump/util.c,v 1.61 1999-11-22 07:25:27 fenner Exp $ (LBL)";
 #endif
 
 #ifdef HAVE_CONFIG_H
@@ -163,6 +163,34 @@ ts_print(register const struct timeval *tvp)
        }
 }
 
+/*
+ * Print a relative number of seconds (e.g. hold time, prune timer)
+ * in the form 5m1s.  This does no truncation, so 32230861 seconds
+ * is represented as 1y1w1d1h1m1s.
+ */
+void
+relts_print(int secs)
+{
+    static char *lengths[]={"y","w","d","h","m","s"};
+    static int seconds[]={31536000,604800,86400,3600,60,1};
+    char **l = lengths;
+    int *s = seconds;
+    int len;
+    int i;
+
+    if (secs == 0) {
+       (void)printf("0s");
+       return;
+    }
+    while (secs) {
+       if (secs >= *s) {
+           (void)printf("%d%s", secs / *s, *l);
+           secs -= (secs / *s) * *s;
+       }
+       s++; l++;
+    }
+}
+
 /*
  * Convert a token value to a string; use "fmt" if not found.
  */