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>
This commit is contained in:
Luigi Rizzo 2003-07-12 08:35:25 +00:00
parent 2ff553eb9e
commit 1b43a426de
Notes: svn2git 2020-12-20 02:59:44 +00:00
svn path=/head/; revision=117472
2 changed files with 14 additions and 5 deletions

View File

@ -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

View File

@ -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;