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.