On 10/09/2021 22:40, Andriy Gapon wrote:
On 10/09/2021 22:38, Andriy Gapon wrote:
On 10/09/2021 22:35, Mark Johnston wrote:
Indeed, I suspect that this is the problem. Note that for
kevent(EVFILT_READ) we subtract the number of control message bytes from
the returned value, see filt_soread(). I wonder if FIONREAD should do
the same thing.
Thank you for the suggestion.
I think that it is a reasonable expectation that FIONREAD returns a number of
bytes that can be actually read.
I'll look at filt_soread().
kn_data = sbavail(&so->so_rcv) - so->so_rcv.sb_ctl;
Is this it?
Looks simple enough for a quick test :)
Works perfectly.
Should I just commit it or is a larger discussion needed?
--
Andriy Gapon