diff --git a/winsup/cygwin/fhandler_socket_unix.cc b/winsup/cygwin/fhandler_socket_unix.cc index d7bb1090e..429aa8a90 100644 --- a/winsup/cygwin/fhandler_socket_unix.cc +++ b/winsup/cygwin/fhandler_socket_unix.cc @@ -8,9 +8,17 @@ Cygwin license. Please consult the file "CYGWIN_LICENSE" for details. */ +#include "winsup.h" + +GUID __cygwin_socket_guid = { + .Data1 = 0xefc1714d, + .Data2 = 0x7b19, + .Data3 = 0x4407, + .Data4 = { 0xba, 0xb3, 0xc5, 0xb1, 0xf9, 0x2c, 0xb8, 0x8c } +}; + #ifdef __WITH_AF_UNIX -#include "winsup.h" #include #include #include @@ -124,13 +132,6 @@ class af_unix_pkt_hdr_t (void *)(((PBYTE)(_p)) + AF_UNIX_PKT_OFFSETOF_DATA (_p)); \ }) -GUID __cygwin_socket_guid = { - .Data1 = 0xefc1714d, - .Data2 = 0x7b19, - .Data3 = 0x4407, - .Data4 = { 0xba, 0xb3, 0xc5, 0xb1, 0xf9, 0x2c, 0xb8, 0x8c } -}; - /* Some error conditions on pipes have multiple status codes, unfortunately. */ #define STATUS_PIPE_NO_INSTANCE_AVAILABLE(status) \ ({ NTSTATUS _s = (status); \ diff --git a/winsup/cygwin/path.cc b/winsup/cygwin/path.cc index 2e3208d2d..4f5f03a76 100644 --- a/winsup/cygwin/path.cc +++ b/winsup/cygwin/path.cc @@ -2476,8 +2476,7 @@ check_reparse_point_string (PUNICODE_STRING subst) /* Return values: <0: Negative errno. 0: Not a reparse point recognized by us. - >0: PATH_SYMLINK | PATH_REP for symlink or directory mount point, - PATH_SOCKET | PATH_REP for AF_UNIX socket. + >0: Path flags for a recognized reparse point, always including PATH_REP. */ int check_reparse_point_target (HANDLE h, bool remote, PREPARSE_DATA_BUFFER rp, @@ -2618,15 +2617,18 @@ check_reparse_point_target (HANDLE h, bool remote, PREPARSE_DATA_BUFFER rp, } return -EIO; } -#ifdef __WITH_AF_UNIX else if (rp->ReparseTag == IO_REPARSE_TAG_CYGUNIX) { PREPARSE_GUID_DATA_BUFFER rgp = (PREPARSE_GUID_DATA_BUFFER) rp; if (memcmp (CYGWIN_SOCKET_GUID, &rgp->ReparseGuid, sizeof (GUID)) == 0) +#ifdef __WITH_AF_UNIX return PATH_SOCKET | PATH_REP; +#else + /* Recognize this as a reparse point but not as a socket. */ + return PATH_REP; +#endif } -#endif /* __WITH_AF_UNIX */ return 0; }