aboutsummaryrefslogtreecommitdiff
path: root/sbin/ipf/libipf/printpacket.c
diff options
context:
space:
mode:
Diffstat (limited to 'sbin/ipf/libipf/printpacket.c')
-rw-r--r--sbin/ipf/libipf/printpacket.c25
1 files changed, 14 insertions, 11 deletions
diff --git a/sbin/ipf/libipf/printpacket.c b/sbin/ipf/libipf/printpacket.c
index a48725a220e0..f8407c3a3102 100644
--- a/sbin/ipf/libipf/printpacket.c
+++ b/sbin/ipf/libipf/printpacket.c
@@ -13,12 +13,12 @@
# define IP_OFFMASK 0x3fff
#endif
-
void
printpacket(int dir, mb_t *m)
{
u_short len, off;
tcphdr_t *tcp;
+ uint16_t tcpflags;
ip_t *ip;
ip = MTOD(m, ip_t *);
@@ -82,24 +82,27 @@ printpacket(int dir, mb_t *m)
if (!(off & IP_OFFMASK)) {
if (ip->ip_p == IPPROTO_TCP || ip->ip_p == IPPROTO_UDP)
PRINTF(",%d", ntohs(tcp->th_dport));
- if ((ip->ip_p == IPPROTO_TCP) && (tcp->th_flags != 0)) {
+ if ((ip->ip_p == IPPROTO_TCP) &&
+ ((tcpflags = __tcp_get_flags(tcp)) != 0)) {
putchar(' ');
- if (tcp->th_flags & TH_FIN)
+ if (tcpflags & TH_FIN)
putchar('F');
- if (tcp->th_flags & TH_SYN)
+ if (tcpflags & TH_SYN)
putchar('S');
- if (tcp->th_flags & TH_RST)
+ if (tcpflags & TH_RST)
putchar('R');
- if (tcp->th_flags & TH_PUSH)
+ if (tcpflags & TH_PUSH)
putchar('P');
- if (tcp->th_flags & TH_ACK)
+ if (tcpflags & TH_ACK)
putchar('A');
- if (tcp->th_flags & TH_URG)
+ if (tcpflags & TH_URG)
putchar('U');
- if (tcp->th_flags & TH_ECN)
+ if (tcpflags & TH_ECN)
putchar('E');
- if (tcp->th_flags & TH_CWR)
- putchar('C');
+ if (tcpflags & TH_CWR)
+ putchar('W');
+ if (tcpflags & TH_AE)
+ putchar('e');
}
}