1
0
mirror of https://git.FreeBSD.org/src.git synced 2024-12-17 10:26:15 +00:00

Fix issue where shutdown(socket, SHUT_RD) was effectively

ignored for TCP sockets.

NetBSD PR:	18185
Submitted by:	Sean Boudreau <seanb@qnx.com>
MFC after:	3 days
This commit is contained in:
Mike Silbersack 2002-09-22 02:54:07 +00:00
parent 8c6bc30900
commit c1c36a2c68
Notes: svn2git 2020-12-20 02:59:44 +00:00
svn path=/head/; revision=103776
2 changed files with 20 additions and 6 deletions

View File

@ -1057,8 +1057,12 @@ tcp_input(m, off0)
/*
* Add data to socket buffer.
*/
m_adj(m, drop_hdrlen); /* delayed header drop */
sbappend(&so->so_rcv, m);
if (so->so_state & SS_CANTRCVMORE) {
m_freem(m);
} else {
m_adj(m, drop_hdrlen); /* delayed header drop */
sbappend(&so->so_rcv, m);
}
sorwakeup(so);
if (DELAY_ACK(tp)) {
callout_reset(tp->tt_delack, tcp_delacktime,
@ -2086,7 +2090,10 @@ tcp_input(m, off0)
tcpstat.tcps_rcvpack++;
tcpstat.tcps_rcvbyte += tlen;
ND6_HINT(tp);
sbappend(&so->so_rcv, m);
if (so->so_state & SS_CANTRCVMORE)
m_freem(m);
else
sbappend(&so->so_rcv, m);
sorwakeup(so);
} else {
thflags = tcp_reass(tp, th, &tlen, m);

View File

@ -1057,8 +1057,12 @@ tcp_input(m, off0)
/*
* Add data to socket buffer.
*/
m_adj(m, drop_hdrlen); /* delayed header drop */
sbappend(&so->so_rcv, m);
if (so->so_state & SS_CANTRCVMORE) {
m_freem(m);
} else {
m_adj(m, drop_hdrlen); /* delayed header drop */
sbappend(&so->so_rcv, m);
}
sorwakeup(so);
if (DELAY_ACK(tp)) {
callout_reset(tp->tt_delack, tcp_delacktime,
@ -2086,7 +2090,10 @@ tcp_input(m, off0)
tcpstat.tcps_rcvpack++;
tcpstat.tcps_rcvbyte += tlen;
ND6_HINT(tp);
sbappend(&so->so_rcv, m);
if (so->so_state & SS_CANTRCVMORE)
m_freem(m);
else
sbappend(&so->so_rcv, m);
sorwakeup(so);
} else {
thflags = tcp_reass(tp, th, &tlen, m);