PERFORCE change 146037 for review
Gleb Kurtsou
gk at FreeBSD.org
Sun Jul 27 11:11:17 UTC 2008
http://perforce.freebsd.org/chv.cgi?CH=146037
Change 146037 by gk at gk_h1 on 2008/07/27 11:11:06
'pfctl -vs state' is now capable of printing state ethernet addresses
do not print extra space in print_addr_ether
Affected files ...
.. //depot/projects/soc2008/gk_l2filter/sbin-pfctl/pf_print_state.c#5 edit
.. //depot/projects/soc2008/gk_l2filter/sbin-pfctl/pfctl_table.c#3 edit
Differences ...
==== //depot/projects/soc2008/gk_l2filter/sbin-pfctl/pf_print_state.c#5 (text+ko) ====
@@ -120,19 +120,23 @@
printf("/%d", bits);
}
- print_addr_ether(&addr->v.a.addr_ether, verbose);
+ putchar(' ');
+ print_addr_ether(&addr->v.a.addr_ether, 0);
}
void
print_addr_ether(struct pf_addr_ether *addr, int verbose)
{
- if ((addr->flags & PFAE_CHECK) == 0)
+ if ((addr->flags & PFAE_CHECK) == 0) {
+ if (verbose)
+ printf("ether any");
return;
+ }
if (addr->flags & PFAE_MULTICAST) {
- printf(" ether multicast");
+ printf("ether multicast");
} else {
u_int8_t *ea = addr->octet;
- printf(" ether %02x:%02x:%02x:%02x:%02x:%02x",
+ printf("ether %02x:%02x:%02x:%02x:%02x:%02x",
ea[0], ea[1], ea[2], ea[3], ea[4], ea[5]);
}
}
@@ -315,6 +319,28 @@
if (s->nat_src_node != NULL)
printf(", sticky-address");
printf("\n");
+ if (s->local_flags & PFSTATE_ETHER) {
+ int left_printed = 0;
+
+ printf(" ");
+ if (s->lan.addr_ether.flags & PFAE_CHECK) {
+ print_addr_ether(&s->lan.addr_ether, 1);
+ if (s->direction == PF_OUT)
+ printf(" -> ");
+ else
+ printf(" <- ");
+ left_printed = 1;
+ }
+ if (!left_printed || (s->gwy.addr_ether.flags & PFAE_CHECK)) {
+ print_addr_ether(&s->gwy.addr_ether, 1);
+ if (s->direction == PF_OUT)
+ printf(" -> ");
+ else
+ printf(" <- ");
+ }
+ print_addr_ether(&s->ext.addr_ether, 1);
+ printf("\n");
+ }
}
if (opts & PF_OPT_VERBOSE2) {
printf(" id: %016llx creatorid: %08x%s\n",
==== //depot/projects/soc2008/gk_l2filter/sbin-pfctl/pfctl_table.c#3 (text+ko) ====
@@ -438,6 +438,7 @@
printf("%c %c%s", ch, (ad->pfra_not?'!':' '), buf);
if (ad->pfra_net < hostnet)
printf("/%d", ad->pfra_net);
+ putchar(' ');
print_addr_ether(&ad->pfra_ether, 0);
if (rad != NULL && fback != PFR_FB_NONE) {
if (strlcpy(buf, "{error}", sizeof(buf)) >= sizeof(buf))
More information about the p4-projects
mailing list