/* \summary: *BSD/Darwin packet filter log file printer */
-#ifdef HAVE_CONFIG_H
#include <config.h>
-#endif
#include "netdissect-stdinc.h"
{ PFRES_MATCH, "0(match)" },
{ PFRES_BADOFF, "1(bad-offset)" },
{ PFRES_FRAG, "2(fragment)" },
- { PFRES_NORM, "3(short)" },
+ { PFRES_SHORT, "3(short)" },
{ PFRES_NORM, "4(normalize)" },
{ PFRES_MEMORY, "5(memory)" },
{ PFRES_TS, "6(bad-timestamp)" },
{ PF_PASS, "pass" },
{ PF_DROP, "block" },
{ PF_SCRUB, "scrub" },
+ { PF_NOSCRUB, "noscrub" },
{ PF_NAT, "nat" },
{ PF_NONAT, "nonat" },
{ PF_BINAT, "binat" },
{ PF_SYNPROXY_DROP, "synproxy-drop" },
#if defined(__FreeBSD__)
{ PF_DEFER, "defer" },
+ { PF_MATCH, "match" },
#elif defined(__OpenBSD__)
{ PF_DEFER, "defer" },
{ PF_MATCH, "match" },
uint32_t rulenr, subrulenr;
ndo->ndo_protocol = "pflog";
- rulenr = GET_BE_U_4(&hdr->rulenr);
- subrulenr = GET_BE_U_4(&hdr->subrulenr);
+ rulenr = GET_BE_U_4(hdr->rulenr);
+ subrulenr = GET_BE_U_4(hdr->subrulenr);
if (subrulenr == (uint32_t)-1)
ND_PRINT("rule %u/", rulenr);
else {
}
ND_PRINT("%s: %s %s on ",
- tok2str(pf_reasons, "unkn(%u)", GET_U_1(&hdr->reason)),
- tok2str(pf_actions, "unkn(%u)", GET_U_1(&hdr->action)),
- tok2str(pf_directions, "unkn(%u)", GET_U_1(&hdr->dir)));
+ tok2str(pf_reasons, "unkn(%u)", GET_U_1(hdr->reason)),
+ tok2str(pf_actions, "unkn(%u)", GET_U_1(hdr->action)),
+ tok2str(pf_directions, "unkn(%u)", GET_U_1(hdr->dir)));
nd_printjnp(ndo, (const u_char*)hdr->ifname, PFLOG_IFNAMSIZ);
ND_PRINT(": ");
}
return;
}
-#define MIN_PFLOG_HDRLEN 45
hdr = (const struct pfloghdr *)p;
- if (GET_U_1(&hdr->length) < MIN_PFLOG_HDRLEN) {
+ hdrlen = GET_U_1(hdr->length);
+ if (hdrlen < MIN_PFLOG_HDRLEN) {
ND_PRINT("[pflog: invalid header length!]");
- ndo->ndo_ll_hdr_len += GET_U_1(&hdr->length); /* XXX: not really */
+ ndo->ndo_ll_hdr_len += hdrlen; /* XXX: not really */
return;
}
- hdrlen = roundup2(hdr->length, 4);
+ hdrlen = roundup2(hdrlen, 4);
if (caplen < hdrlen) {
nd_print_trunc(ndo);
pflog_print(ndo, hdr);
/* skip to the real packet */
- af = GET_U_1(&hdr->af);
+ af = GET_U_1(hdr->af);
length -= hdrlen;
caplen -= hdrlen;
p += hdrlen;
*
* Hopefully, there isn't.
*/
- case AFNUM_INET:
+ case BSD_AFNUM_INET:
ip_print(ndo, p, length);
break;