My only guess is that I was botching something else when I was digging into this a few years ago.
I can't tell you how much I appreciate you putting that together. This seriously changes a lot of what I work on. Thank you.
The client code I wrote: https://gist.github.com/benwills/95ee844853d3b18588fb3df7d56...
The errors are just because you need to check for EAGAIN or EWOULDBLOCK when read() returns -1, and not bail out when that happens.
My only guess is that I was botching something else when I was digging into this a few years ago.
I can't tell you how much I appreciate you putting that together. This seriously changes a lot of what I work on. Thank you.
The client code I wrote: https://gist.github.com/benwills/95ee844853d3b18588fb3df7d56...