MSG_MORE socket.h flag

Corinna Vinschen corinna-cygwin@cygwin.com
Mon Apr 3 10:56:48 GMT 2023


On Apr  2 00:19, Chance via Cygwin wrote:
> I've used cygwin in the past few years using the MSG_MORE flag when using
> some socket functions

I have no idea how you did that.  MSG_MORE was never actually supported
by Cygwin, and the (more or less) equivalent MSG_PARTIAL flag was never
exposed into Cygwin user space.

> but now it's not defined in cygwin\socket.h and

It never was!  I checked the history back until the year 2000.

> MSG_EOR is using the value of MSG_MORE (0x8000). Above that in the socket.h
> file there is a comment /* MSG_EOR is not supported.  We use the
> MSG_PARTIAL flag here */. I understand this as meaning MSG_EOR now works as
> MSG_MORE would and that MSG_EOR is not usable. Just want some clarification
> on this.

It just means we're using the bit value of MSG_PARTIAL to expose
a MSG_EOR flag into user space.  It was introduced in 2019 because
of POSIX header file compatibility, but it's unsupported and always
results in sedn/recv returning EOPNOTSUPP.

I'm still puzzled where you got the MSG_MORE definition from, though.


Corinna


More information about the Cygwin mailing list