Changeset View
Changeset View
Standalone View
Standalone View
sys/netinet/tcp_output.c
Show First 20 Lines • Show All 1,281 Lines • ▼ Show 20 Lines | if (IN_RECOVERY(tp->t_flags)) { | ||||
*/ | */ | ||||
tp->sackhint.prr_out += len; | tp->sackhint.prr_out += len; | ||||
} | } | ||||
th->th_ack = htonl(tp->rcv_nxt); | th->th_ack = htonl(tp->rcv_nxt); | ||||
if (optlen) { | if (optlen) { | ||||
bcopy(opt, th + 1, optlen); | bcopy(opt, th + 1, optlen); | ||||
th->th_off = (sizeof (struct tcphdr) + optlen) >> 2; | th->th_off = (sizeof (struct tcphdr) + optlen) >> 2; | ||||
} | } | ||||
th->th_flags = flags; | tcp_set_flags(th, flags); | ||||
/* | /* | ||||
* Calculate receive window. Don't shrink window, | * Calculate receive window. Don't shrink window, | ||||
* but avoid silly window syndrome. | * but avoid silly window syndrome. | ||||
* If a RST segment is sent, advertise a window of zero. | * If a RST segment is sent, advertise a window of zero. | ||||
*/ | */ | ||||
if (flags & TH_RST) { | if (flags & TH_RST) { | ||||
recwin = 0; | recwin = 0; | ||||
} else { | } else { | ||||
▲ Show 20 Lines • Show All 896 Lines • Show Last 20 Lines |