diff options
author | kbyanc <kbyanc@FreeBSD.org> | 2002-11-01 21:27:59 +0000 |
---|---|---|
committer | kbyanc <kbyanc@FreeBSD.org> | 2002-11-01 21:27:59 +0000 |
commit | c70af01e8027513cb16aa9d60244c105336fe3e6 (patch) | |
tree | 75bdbba0cb4efffc7b7ecf3d41097ddbf79ca0f5 /sys/kern/uipc_socket.c | |
parent | 678a0e633139a3b295d83cad803fdd19b2a492b9 (diff) | |
download | FreeBSD-src-c70af01e8027513cb16aa9d60244c105336fe3e6.zip FreeBSD-src-c70af01e8027513cb16aa9d60244c105336fe3e6.tar.gz |
Track the number of non-data chararacters stored in socket buffers so that
the data value returned by kevent()'s EVFILT_READ filter on non-TCP
sockets accurately reflects the amount of data that can be read from the
sockets by applications.
PR: 30634
Reviewed by: -net, -arch
Sponsored by: NTT Multimedia Communications Labs
MFC after: 2 weeks
Diffstat (limited to 'sys/kern/uipc_socket.c')
-rw-r--r-- | sys/kern/uipc_socket.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/sys/kern/uipc_socket.c b/sys/kern/uipc_socket.c index e07e581..7a6c2b5 100644 --- a/sys/kern/uipc_socket.c +++ b/sys/kern/uipc_socket.c @@ -1784,7 +1784,7 @@ filt_soread(struct knote *kn, long hint) { struct socket *so = (struct socket *)kn->kn_fp->f_data; - kn->kn_data = so->so_rcv.sb_cc; + kn->kn_data = so->so_rcv.sb_cc - so->so_rcv.sb_ctl; if (so->so_state & SS_CANTRCVMORE) { kn->kn_flags |= EV_EOF; kn->kn_fflags = so->so_error; |