Hi Ken, On Dec 26 15:25, Ken Brown wrote: > If that flag is not set, fail with EOPNOTSUPP instead of ENXIO. This > is consistent with POSIX, starting with the 2016 edition. Earlier > editions were silent on this issue. > --- > winsup/cygwin/fhandler_socket.cc | 13 +++++++++++-- > winsup/cygwin/release/3.1.3 | 5 +++++ > winsup/doc/new-features.xml | 5 +++++ > 3 files changed, 21 insertions(+), 2 deletions(-) > create mode 100644 winsup/cygwin/release/3.1.3 > > diff --git a/winsup/cygwin/fhandler_socket.cc > b/winsup/cygwin/fhandler_socket.cc > index 9f33d8087..4a46d5a64 100644 > --- a/winsup/cygwin/fhandler_socket.cc > +++ b/winsup/cygwin/fhandler_socket.cc > @@ -269,8 +269,17 @@ fhandler_socket::fcntl (int cmd, intptr_t arg) > int > fhandler_socket::open (int flags, mode_t mode) > { > - set_errno (ENXIO); > - return 0; > + /* We don't support opening sockets unless O_PATH is specified. */ > + if (!(flags & O_PATH)) > + { > + set_errno (EOPNOTSUPP); > + return 0; > + } > + > + query_open (query_read_attributes); > + nohandle (true); > + set_flags (flags);
Shouldn't that only work with AF_LOCAL/AF_UNIX sockets? This looks like it will return a valid descriptor even for IP sockets. Thanks, Corinna -- Corinna Vinschen Cygwin Maintainer
signature.asc
Description: PGP signature