https://bugs.winehq.org/show_bug.cgi?id=17195
--- Comment #163 from Adam Martinson adam.r.martinson@gmail.com --- (In reply to Sebastian Lackner from comment #162)
Moreover we're preparing some kernel patches...
Nice to see somebody working on this again =) A few notes from my time on this:
If you need to patch the native kernel to get your implementation to work, it's probably the wrong way to go. As you noted I played around with a SOCK_SEQPACKET implementation, and ditched it because of some of the problems you've run into.
The reason I implemented message mode through the server is because that's what AJ suggested. I think that's probably the easiest & most straightforward way to do it.
If you're really set on using native pipes/sockets, I would take a look at encoding the data in a normal stream socket. Basically save yourself an end-of-message bit out of each byte, and shift the rest of the data accordingly. You'll end up with an overhead of 1 byte per 7 sent, which should give you acceptable performance. Zero-length writes would become a single byte with just that end-of-message bit set. You'd obviously need to translate lengths, which should be trivial.
Any questions, etc feel free to send me an email. ~Adam