The following reply was made to PR kern/82470; it has been noted by GNATS.

From: Pieter de Boer <[EMAIL PROTECTED]>
To: [EMAIL PROTECTED]
Cc:  
Subject: Re: kern/82470: FreeBSD advertises wrong window scale in some 
situations
Date: Sun, 24 Jul 2005 15:39:15 +0200

 The following patch seems to fix the problem:
 
 
 diff -u netinet.orig/tcp_syncache.c netinet/tcp_syncache.c
 --- netinet.orig/tcp_syncache.c        Sun Jul 24 15:26:14 2005
 +++ netinet/tcp_syncache.c     Sun Jul 24 15:26:56 2005
 @@ -966,7 +966,7 @@
 
                        /* Compute proper scaling value from buffer space */
                        while (wscale < TCP_MAX_WINSHIFT &&
 -                          (TCP_MAXWIN << wscale) < so->so_rcv.sb_hiwat)
 +                          (TCP_MAXWIN << (wscale + 1)) <= so->so_rcv.sb_hiwat)
                                wscale++;
                        sc->sc_request_r_scale = wscale;
                        sc->sc_requested_s_scale = to->to_requested_s_scale;
 diff -u netinet.orig/tcp_usrreq.c netinet/tcp_usrreq.c
 --- netinet.orig/tcp_usrreq.c  Sun Jul 24 15:26:14 2005
 +++ netinet/tcp_usrreq.c       Sun Jul 24 15:26:47 2005
 @@ -888,7 +888,7 @@
 
        /* Compute window scaling to request.  */
        while (tp->request_r_scale < TCP_MAX_WINSHIFT &&
 -          (TCP_MAXWIN << tp->request_r_scale) < so->so_rcv.sb_hiwat)
 +          (TCP_MAXWIN << (tp->request_r_scale + 1)) <= so->so_rcv.sb_hiwat)
                tp->request_r_scale++;
 
        soisconnecting(so);
 @@ -950,7 +950,7 @@
 
        /* Compute window scaling to request.  */
        while (tp->request_r_scale < TCP_MAX_WINSHIFT &&
 -          (TCP_MAXWIN << tp->request_r_scale) < so->so_rcv.sb_hiwat)
 +          (TCP_MAXWIN << (tp->request_r_scale + 1)) <= so->so_rcv.sb_hiwat)
                tp->request_r_scale++;
 
        soisconnecting(so);
_______________________________________________
freebsd-net@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-net
To unsubscribe, send any mail to "[EMAIL PROTECTED]"

Reply via email to