diff options
Diffstat (limited to 'sys/netinet/tcp_subr.c')
-rw-r--r-- | sys/netinet/tcp_subr.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/sys/netinet/tcp_subr.c b/sys/netinet/tcp_subr.c index b15c7d1..ee62998 100644 --- a/sys/netinet/tcp_subr.c +++ b/sys/netinet/tcp_subr.c @@ -314,8 +314,11 @@ tcp_respond(tp, ipgen, th, m, ack, seq, flags) ipov = ipgen; if (tp) { - if (!(flags & TH_RST)) + if (!(flags & TH_RST)) { win = sbspace(&tp->t_inpcb->inp_socket->so_rcv); + if (win > (long)TCP_MAXWIN << tp->rcv_scale) + win = (long)TCP_MAXWIN << tp->rcv_scale; + } #ifdef INET6 if (isipv6) ro6 = &tp->t_inpcb->in6p_route; |