On Mon, 21 Apr 2008 10:56:42 EDT erik quanstrom <[EMAIL PROTECTED]>  wrote:
...
> bwc points out that godaddy's behavior is very likely a violation of the rfc.

I am not convinced any rfc covers this situation - it may be
that their tcp layer does the right thing and the bug is at
the application level. But in any case setting PSH on a
packet with no data serves no real purpose.  *BSD, Linux and
Windows don't set PSH on such packets either.

> it was suggested that the } was prehaps misplaced.  i think this is not
> correct as the preceeding if modifieds dsize so i believe the ifs need to be
> seperate.

I meant this:
                /* Pull out data to send */
                bp = nil;
                if(dsize != 0) {
                        bp = qcopy(s->wq, dsize, sent);
                        if(BLEN(bp) != dsize) {
                                seg.flags |= FIN;
                                dsize--;
                        }
                        if(sent+dsize == sndcnt)
                                seg.flags |= PSH;
                }

Seems clearer to me.  And equivalent!  I have been running
with this change since last Thursday. I don't stress my plan9
machine all that much but replica pulls, ftp, web browsing,
nfs etc. have worked fine.

Reply via email to