In soreceive(), when considering delivery to a socket in SS_ISCONFIRMING,

only call the protocol's pru_rcvd() if the protocol has the flag
PR_WANTRCVD set.  This brings that instance of pru_rcvd() into line with
the rest, which do check the flag.

MFC after:	3 days
This commit is contained in:
Robert Watson 2005-02-20 15:54:44 +00:00
parent e24ead142e
commit a00428ef92

View file

@ -981,7 +981,8 @@ soreceive(so, psa, uio, mp0, controlp, flagsp)
return (soreceive_rcvoob(so, uio, flags));
if (mp != NULL)
*mp = NULL;
if (so->so_state & SS_ISCONFIRMING && uio->uio_resid)
if ((pr->pr_flags & PR_WANTRCVD) && (so->so_state & SS_ISCONFIRMING)
&& uio->uio_resid)
(*pr->pr_usrreqs->pru_rcvd)(so, 0);
SOCKBUF_LOCK(&so->so_rcv);