From 6748c6ecf86947964a358f53e3a6c0b63849cf33 Mon Sep 17 00:00:00 2001 From: Ken Brown Date: Sat, 3 Oct 2020 12:37:36 -0400 Subject: Cygwin: AF_UNIX: listen_pipe: check for STATUS_SUCCESS A successful connection can be indicated by STATUS_SUCCESS or STATUS_PIPE_CONNECTED. Previously we were checking only for the latter. --- winsup/cygwin/fhandler_socket_unix.cc | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/winsup/cygwin/fhandler_socket_unix.cc b/winsup/cygwin/fhandler_socket_unix.cc index 0ae7fe125..1a9532fe5 100644 --- a/winsup/cygwin/fhandler_socket_unix.cc +++ b/winsup/cygwin/fhandler_socket_unix.cc @@ -1064,6 +1064,7 @@ fhandler_socket_unix::listen_pipe () IO_STATUS_BLOCK io; HANDLE evt = NULL; DWORD waitret = WAIT_OBJECT_0; + int ret = -1; io.Status = STATUS_PENDING; if (!is_nonblocking () && !(evt = create_event ())) @@ -1085,9 +1086,11 @@ fhandler_socket_unix::listen_pipe () set_errno (EINTR); else if (status == STATUS_PIPE_LISTENING) set_errno (EAGAIN); - else if (status != STATUS_PIPE_CONNECTED) + else if (status == STATUS_SUCCESS || status == STATUS_PIPE_CONNECTED) + ret = 0; + else __seterrno_from_nt_status (status); - return (status == STATUS_PIPE_CONNECTED) ? 0 : -1; + return ret; } ULONG -- cgit v1.2.3