Web lists-archives.com

Re: bug: cygwin-devel v3.0.2-1 socket.h does not #define MSG_EOR per the POSIX standard




On 2019-04-24 14:50, Eric Blake wrote:
> On 4/24/19 3:36 PM, Hans-Bernhard Bröker wrote:
>> Am 24.04.2019 um 19:54 schrieb Eliot Moss:
>>> On 4/24/2019 12:43 PM, Corinna Vinschen wrote:
>>
>>>> Since MSG_EOR isn't implemented in the underlying transport layer,
>>>> there's no way to implement it in userspace.  That's why it's not
>>>> defined in Cygwin's headers.  If you have an idea how to implement
>>>> this in plain userspace, feel free to provide patches.
>>>
>>> I don't have a direct interest in this issue, but I do have a wondering.
>>> If Cygwin fails to define an error code -- even if the error cannot
>>> actually happen under Cygwin -- isn't that a problem when trying to
>>> compile imported software?  
>>
> 
> Well, MSG_EOR is not an error, but we can certainly do better than not
> defining it at all. My suggestion for the least-cost implementation:
> 
> - add a define for MSG_EOR to a non-zero value that is bitwise distinct
> from other required MSG_ values
> - return EOPNOTSUPP on attempts to use the flag in
> send()/sendmsg()/sendto() (POSIX permits that failure for protocols that
> don't support it - and none of Cygwin's protocols support it)
> - optionally, document that MSG_EOR will never be set in the results
> returned by recvmsg() (POSIX says it will only be set on protocols that
> support it - and none of Cygwin's protocols support it)
> 
> This will at least let software compile that attempts to use it, and
> hopefully that software is robust to the fact that send() may reject the
> flag and that recvmsg() cannot reliably report use of that flag.
> 
>>
>> Either way, as Standardese goes, this is sufficiently unclear that it
>> IMHO calls for a defect report to the governing body of this standard.
> 
> You're welcome to do so:
> http://austingroupbugs.net/main_page.php
> 
> although I personally thought POSIX was clear enough that MSG_EOR is
> required to be defined, even if only so that it can trigger send()
> errors showing that it is unsupported.

Would it be allowed and valid to #define MSG_EOR 0 to simplify lack of support?

-- 
Take care. Thanks, Brian Inglis, Calgary, Alberta, Canada

This email may be disturbing to some readers as it contains
too much technical detail. Reader discretion is advised.

--
Problem reports:       http://cygwin.com/problems.html
FAQ:                   http://cygwin.com/faq/
Documentation:         http://cygwin.com/docs.html
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple