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

Reply via email to