Jeremy Evans code@jeremyevans.net wrote:
This turns out to be a bug in the lower levels of the OpenBSD kernel,
specific to SEQPACKET. I've tested a patch that fixes it, it will
probably be in the next release.
Good to know!
The default socket buffer size for SEQPACKET sockets is actually 4096
on OpenBSD, so it may be better to increase the size values back, though
not all the way up to 8192. Below is a patch that does that.
Alright, I cranked it up to 4096 on both tests for consistency.
Thanks again for the heads up.
No problem, thanks for reporting these issues. It's great to know
SOCK_SEQPACKET is supported on OpenBSD, even.
Btw, there's some places where we're conservative and only enable some
features under Linux. For example, I just added another poll() user at
r51305 for Linux-only and there's the MSG_DONTWAIT_RELIABLE macro in
ext/socket/rubysocket.h It'd be great if *BSD users/devs could test
and enable these on *BSDs (fixing the kernels if necessary).