Check for SS_NBIO in the socket state field rather than socket buffer

flags.

Submitted by:	Vijay Singh
MFC after:	1 week
This commit is contained in:
John Baldwin 2013-04-03 20:31:10 +00:00
parent b93f389f48
commit e5fb562225

View File

@ -1267,7 +1267,7 @@ sdp_sorecv(struct socket *so, struct sockaddr **psa, struct uio *uio,
/* Socket buffer is empty and we shall not block. */
if (sb->sb_cc == 0 &&
((sb->sb_flags & SS_NBIO) || (flags & (MSG_DONTWAIT|MSG_NBIO)))) {
((so->so_state & SS_NBIO) || (flags & (MSG_DONTWAIT|MSG_NBIO)))) {
error = EAGAIN;
goto out;
}
@ -1297,7 +1297,7 @@ sdp_sorecv(struct socket *so, struct sockaddr **psa, struct uio *uio,
/* Socket buffer got some data that we shall deliver now. */
if (sb->sb_cc > 0 && !(flags & MSG_WAITALL) &&
((sb->sb_flags & SS_NBIO) ||
((so->so_state & SS_NBIO) ||
(flags & (MSG_DONTWAIT|MSG_NBIO)) ||
sb->sb_cc >= sb->sb_lowat ||
sb->sb_cc >= uio->uio_resid ||