TCP_FLAG_FINISH
if ((segment.flags & (TCP_FLAG_SYNCHRONIZE | TCP_FLAG_FINISH)) != 0)
if ((segment.flags & TCP_FLAG_FINISH) != 0) {
segment.flags &= ~TCP_FLAG_FINISH;
segment.flags |= TCP_FLAG_FINISH;
&& (segment.flags & TCP_FLAG_FINISH) == 0)) {
segment.flags &= ~TCP_FLAG_FINISH;
if ((segment.flags & TCP_FLAG_FINISH) != 0) {
segment.flags &= ~(TCP_FLAG_FINISH | TCP_FLAG_PUSH);
&& (segment.flags & TCP_FLAG_FINISH) == 0 && fSendUnacknowledged != fSendMax) {
if ((bufferSize > 0 || (segment.flags & TCP_FLAG_FINISH) != 0)
if ((segment.flags & TCP_FLAG_FINISH) != 0) {
if (segment.flags & TCP_FLAG_FINISH)
if ((segment.flags & (TCP_FLAG_SYNCHRONIZE | TCP_FLAG_FINISH
segment.flags |= (fFlags & FLAG_USER_CLOSED) != 0 ? TCP_FLAG_RESET : TCP_FLAG_FINISH;
| TCP_FLAG_FINISH);
dprintf(" flags: %s%s%s%s%s%s\n", (header.flags & TCP_FLAG_FINISH) ? "FIN " : "",
return (flags & (TCP_FLAG_SYNCHRONIZE | TCP_FLAG_FINISH | TCP_FLAG_RESET
if ((header.flags & TCP_FLAG_FINISH) != 0)
& (TCP_FLAG_SYNCHRONIZE | TCP_FLAG_FINISH | TCP_FLAG_PUSH | TCP_FLAG_RESET)) == 0)
return (tcp_segment_flags(buffer) & TCP_FLAG_FINISH) != 0;