summaryrefslogtreecommitdiffstats
path: root/sbin/ipfw
diff options
context:
space:
mode:
authorluigi <luigi@FreeBSD.org>2003-07-12 08:35:25 +0000
committerluigi <luigi@FreeBSD.org>2003-07-12 08:35:25 +0000
commit043fe49d632271f6d3cdc39b84baa093dc4cbd60 (patch)
treeb24acb6c3124e38091818b018d992d404a6a3807 /sbin/ipfw
parent8fc7089ee76279dd6387ef817c991d92cf7a9391 (diff)
downloadFreeBSD-src-043fe49d632271f6d3cdc39b84baa093dc4cbd60.zip
FreeBSD-src-043fe49d632271f6d3cdc39b84baa093dc4cbd60.tar.gz
Add a '-T' flag to print the timestamp as numeric value instead
of converting it with ctime(). This is a lot more convenient for postprocessing. Submitted by: "Jacob S. Barrett" <jbarrett@amduat.net>
Diffstat (limited to 'sbin/ipfw')
-rw-r--r--sbin/ipfw/ipfw.89
-rw-r--r--sbin/ipfw/ipfw2.c10
2 files changed, 14 insertions, 5 deletions
diff --git a/sbin/ipfw/ipfw.8 b/sbin/ipfw/ipfw.8
index 542724b..39dc69e 100644
--- a/sbin/ipfw/ipfw.8
+++ b/sbin/ipfw/ipfw.8
@@ -13,7 +13,7 @@
.Cm add
.Ar rule
.Nm
-.Op Fl acdeftnNS
+.Op Fl acdefnNStT
.Brq Cm list | show
.Op Ar rule | first-last ...
.Nm
@@ -54,7 +54,7 @@
.Op Ar number ...
.Pp
.Nm
-.Op Fl cNnqS
+.Op Fl cnNqS
.Oo
.Fl p Ar preproc
.Oo
@@ -261,7 +261,10 @@ listed.
While listing pipes, sort according to one of the four
counters (total or current packets or bytes).
.It Fl t
-While listing, show last match timestamp.
+While listing, show last match timestamp (converted with ctime()).
+.It Fl T
+While listing, show last match timestamp (as seconds from the epoch).
+This form can be more convenient for postprocessing by scripts.
.El
.Pp
To ease configuration, rules can be put into a file which is
diff --git a/sbin/ipfw/ipfw2.c b/sbin/ipfw/ipfw2.c
index 71009db..1c6f94e 100644
--- a/sbin/ipfw/ipfw2.c
+++ b/sbin/ipfw/ipfw2.c
@@ -902,7 +902,9 @@ show_ipfw(struct ip_fw *rule, int pcwidth, int bcwidth)
printf("%*llu %*llu ", pcwidth, align_uint64(&rule->pcnt),
bcwidth, align_uint64(&rule->bcnt));
- if (do_time) {
+ if (do_time == 2)
+ printf("%10u ", rule->timestamp);
+ else if (do_time == 1) {
char timestr[30];
time_t t = (time_t)0;
@@ -3667,7 +3669,7 @@ ipfw_main(int oldac, char **oldav)
save_av = av;
optind = optreset = 0;
- while ((ch = getopt(ac, av, "acdefhnNqs:Stv")) != -1)
+ while ((ch = getopt(ac, av, "acdefhnNqs:STtv")) != -1)
switch (ch) {
case 'a':
do_acct = 1;
@@ -3717,6 +3719,10 @@ ipfw_main(int oldac, char **oldav)
do_time = 1;
break;
+ case 'T':
+ do_time = 2; /* numeric timestamp */
+ break;
+
case 'v': /* verbose */
verbose = 1;
break;
OpenPOWER on IntegriCloud