Skip to content

Commit

Permalink
Retrieve counters from kernel if rule timstamping is requested.
Browse files Browse the repository at this point in the history
PR:		kern/197271
Submitted by:	lev
Sponsored by:	Yandex LLC
  • Loading branch information
AlexanderChernikov committed Feb 5, 2015
1 parent 0f5a4f0 commit be47553
Showing 1 changed file with 4 additions and 2 deletions.
6 changes: 4 additions & 2 deletions sbin/ipfw/ipfw2.c
Original file line number Diff line number Diff line change
Expand Up @@ -61,6 +61,7 @@ struct format_opts {
int bcwidth;
int pcwidth;
int show_counters;
int show_time; /* show timestamp */
uint32_t set_mask; /* enabled sets mask */
uint32_t flags; /* request flags */
uint32_t first; /* first rule to request */
Expand Down Expand Up @@ -2402,7 +2403,7 @@ list_static_range(struct cmdline_opts *co, struct format_opts *fo,
for (n = seen = 0; n < rcnt; n++,
rtlv = (ipfw_obj_tlv *)((caddr_t)rtlv + rtlv->length)) {

if (fo->show_counters != 0) {
if ((fo->show_counters | fo->show_time) != 0) {
cntr = (struct ip_fw_bcounter *)(rtlv + 1);
r = (struct ip_fw_rule *)((caddr_t)cntr + cntr->size);
} else {
Expand Down Expand Up @@ -2504,10 +2505,11 @@ ipfw_list(int ac, char *av[], int show_counters)
/* get configuraion from kernel */
cfg = NULL;
sfo.show_counters = show_counters;
sfo.show_time = co.do_time;
sfo.flags = IPFW_CFG_GET_STATIC;
if (co.do_dynamic != 0)
sfo.flags |= IPFW_CFG_GET_STATES;
if (sfo.show_counters != 0)
if ((sfo.show_counters | sfo.show_time) != 0)
sfo.flags |= IPFW_CFG_GET_COUNTERS;
if (ipfw_get_config(&co, &sfo, &cfg, &sz) != 0)
err(EX_OSERR, "retrieving config failed");
Expand Down

0 comments on commit be47553

Please sign in to comment.