fstat and similar methods in fhandler_socket_local and fhandler_socket_unix

Corinna Vinschen corinna-cygwin@cygwin.com
Wed Feb 24 09:06:19 GMT 2021


On Feb 22 15:01, Ken Brown via Cygwin-developers wrote:
> OK, I've got patches ready to go for fstat, fstatvfs, fchmod, fchown, facl,
> and link.  I have to test them, and then I'll send them to cygwin-patches.
> In the case of link, I think the only way an fhandler_socket's link method
> can be called is through link(2) being called on a socket file.  So the
> following should do the job:
> 
> diff --git a/winsup/cygwin/fhandler.h b/winsup/cygwin/fhandler.h
> index 21e1df172..f4aa12956 100644
> --- a/winsup/cygwin/fhandler.h
> +++ b/winsup/cygwin/fhandler.h
> @@ -611,7 +611,6 @@ class fhandler_socket: public fhandler_base
>    int __reg1 fchmod (mode_t newmode);
>    int __reg2 fchown (uid_t newuid, gid_t newgid);
>    int __reg3 facl (int, int, struct acl *);
> -  int __reg2 link (const char *);
>    off_t lseek (off_t, int)
>    {
>      set_errno (ESPIPE);
> diff --git a/winsup/cygwin/fhandler_socket.cc b/winsup/cygwin/fhandler_socket.cc
> index f22412650..08870cc6b 100644
> --- a/winsup/cygwin/fhandler_socket.cc
> +++ b/winsup/cygwin/fhandler_socket.cc
> @@ -357,9 +357,3 @@ fhandler_socket::facl (int cmd, int nentries, aclent_t *aclbufp)
>    set_errno (EOPNOTSUPP);
>    return -1;
>  }
> -
> -int
> -fhandler_socket::link (const char *newpath)
> -{
> -  return fhandler_base::link (newpath);
> -}

Hmm.  What about linkat (AT_EMPTY_PATH, socket, ...)?

This could be called for inet sockets as well as unnamed or abstract
unix sockets, in theory...


Corinna


More information about the Cygwin-developers mailing list