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 <corinna@vinschen.de>
This commit is contained in:
Corinna Vinschen 2021-04-06 21:26:33 +02:00
parent 8bb5161fe3
commit caa78917b6
1 changed files with 1 additions and 6 deletions

View File

@ -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;
}