TH_FIN
if (f & TH_FIN)
if (ctx.th->th_flags & TH_FIN)
if (th->th_flags & TH_FIN)
if (th->th_flags & TH_FIN)
if (th->th_flags & TH_FIN)
if (th->th_flags & TH_FIN)
if (th->th_flags & TH_FIN)
if (th->th_flags & TH_FIN)
} else if ((th->th_flags & (TH_ACK|TH_RST|TH_FIN)) != TH_ACK ||
if (flags & TH_FIN) /* XXX why clear instead of drop? */
flags &= ~TH_FIN;
if (flags & (TH_FIN|TH_PUSH|TH_URG))
if ((th->th_flags & (TH_SYN|TH_FIN|TH_RST|TH_ACK)) != TH_ACK)
TH_FIN|TH_ACK, TH_FIN|TH_ACK, TH_FIN|TH_ACK, TH_ACK, TH_ACK,
tiflags &= ~TH_FIN;
(todrop == tlen && (tiflags & TH_FIN) == 0)) {
tiflags &= ~TH_FIN;
tiflags &= ~(TH_PUSH|TH_FIN);
if ((tlen || (tiflags & TH_FIN)) &&
tiflags = th->th_flags & TH_FIN;
tiflags &= ~TH_FIN;
if ((tiflags & TH_FIN) && TCPS_HAVEESTABLISHED(tp->t_state)) {
flags = q->tcpqe_tcp->th_flags & TH_FIN;
(tiflags & (TH_SYN|TH_FIN|TH_RST|TH_URG|TH_ECE|TH_CWR|TH_ACK)) == TH_ACK &&
(tiflags & (TH_SYN|TH_FIN|TH_RST|TH_URG|TH_ACK)) == TH_ACK &&
CLR(mhth->th_flags, TH_PUSH|TH_FIN);
CLR(th->th_flags, TH_PUSH|TH_FIN);
flags &= ~TH_FIN;
!(flags & (TH_SYN|TH_RST|TH_FIN))) {
flags &= ~TH_FIN;
if (flags & TH_FIN &&
flags &= ~TH_FIN;
else if (flags & (TH_SYN|TH_FIN|TH_RST))
if ((flags & TH_FIN) && (tp->t_flags & TF_SENTFIN) &&
if (len || (flags & (TH_SYN|TH_FIN)) ||
if (flags & (TH_SYN|TH_FIN)) {
if (flags & TH_FIN) {
if ((get_tcpflags(tcp) & TH_FIN) != 0 && len == hlen + get_tcpoff(tcp) * 4)
if (flags & TH_FIN) putchar('F');
if ((flags = tp->th_flags) & (TH_SYN|TH_FIN|TH_RST|TH_PUSH|
if (flags & TH_FIN)
if (vflag > 1 || length > 0 || flags & (TH_SYN | TH_FIN | TH_RST))
(TH_SYN|TH_ACK|TH_FIN|TH_RST) : 0);
pf(TH_FIN, "FIN");