From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: by sourceware.org (Postfix, from userid 2155) id AB2323857819; Tue, 6 Apr 2021 19:35:58 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org AB2323857819 Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit From: Corinna Vinschen To: cygwin-cvs@sourceware.org Subject: [newlib-cygwin] Cygwin: select: don't set ready for exception on socket shutdown X-Act-Checkin: newlib-cygwin X-Git-Author: Corinna Vinschen X-Git-Refname: refs/heads/master X-Git-Oldrev: 8bb5161fe3bdccbe94482715b71dd26d6d3e79e3 X-Git-Newrev: caa78917b68a9f5cff65b22e0e53ebd53b2dc5c7 Message-Id: <20210406193558.AB2323857819@sourceware.org> Date: Tue, 6 Apr 2021 19:35:58 +0000 (GMT) X-BeenThere: cygwin-cvs@cygwin.com X-Mailman-Version: 2.1.29 Precedence: list List-Id: Cygwin core component git logs List-Unsubscribe: , List-Archive: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 06 Apr 2021 19:35:58 -0000 https://sourceware.org/git/gitweb.cgi?p=newlib-cygwin.git;h=caa78917b68a9f5cff65b22e0e53ebd53b2dc5c7 commit caa78917b68a9f5cff65b22e0e53ebd53b2dc5c7 Author: Corinna Vinschen Date: Tue Apr 6 21:26:33 2021 +0200 Cygwin: select: don't set ready for exception on socket shutdown So far select wrongly sets the descriptor as ready for exception when a shutdown occurs. This is entirely non-standard. Only set this bit on an out-of-band event. Signed-off-by: Corinna Vinschen Diff: --- winsup/cygwin/select.cc | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/winsup/cygwin/select.cc b/winsup/cygwin/select.cc index 6e8586d17..956cd9bc1 100644 --- a/winsup/cygwin/select.cc +++ b/winsup/cygwin/select.cc @@ -1920,10 +1920,7 @@ fhandler_socket_wsock::select_write (select_stuff *ss) s->write_ready = saw_shutdown_write () || connect_state () == unconnected; s->write_selected = true; if (connect_state () != unconnected) - { - s->except_ready = saw_shutdown_write () || saw_shutdown_read (); - s->except_on_write = true; - } + s->except_on_write = true; return s; } @@ -1938,8 +1935,6 @@ fhandler_socket_wsock::select_except (select_stuff *ss) s->cleanup = socket_cleanup; } s->peek = peek_socket; - /* FIXME: Is this right? Should these be used as criteria for except? */ - s->except_ready = saw_shutdown_write () || saw_shutdown_read (); s->except_selected = true; return s; }