|author||Eric Wong <email@example.com>||2020-04-11 10:53:30 +0000|
|committer||Eric Wong <firstname.lastname@example.org>||2020-04-15 10:16:05 +0000|
I've observed FreeBSD 11.2 read(2) having one of three behaviors after a failed write(2) on a socket: 1) returning number of bytes read 2) failing with ECONNRESET 3) returning with EOF 1) is the most common, and I've only seen 1) on Linux. It may be possible to use SO_LINGER or shutdown(2) to ensure 1) always happens, but SO_LINGER behavior seems inconsistent across OSes, especially with non-blocking sockets. Since these tests are corner-cases where we're dealing with broken/malicious clients, lets continue spending the least amount of syscalls protecting ourselves in the daemon and instead make the client-side test code tolerate more socket implementations.
Diffstat (limited to 'lib')
0 files changed, 0 insertions, 0 deletions