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:
parent
8bb5161fe3
commit
caa78917b6
|
@ -1920,10 +1920,7 @@ fhandler_socket_wsock::select_write (select_stuff *ss)
|
||||||
s->write_ready = saw_shutdown_write () || connect_state () == unconnected;
|
s->write_ready = saw_shutdown_write () || connect_state () == unconnected;
|
||||||
s->write_selected = true;
|
s->write_selected = true;
|
||||||
if (connect_state () != unconnected)
|
if (connect_state () != unconnected)
|
||||||
{
|
s->except_on_write = true;
|
||||||
s->except_ready = saw_shutdown_write () || saw_shutdown_read ();
|
|
||||||
s->except_on_write = true;
|
|
||||||
}
|
|
||||||
return s;
|
return s;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1938,8 +1935,6 @@ fhandler_socket_wsock::select_except (select_stuff *ss)
|
||||||
s->cleanup = socket_cleanup;
|
s->cleanup = socket_cleanup;
|
||||||
}
|
}
|
||||||
s->peek = peek_socket;
|
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;
|
s->except_selected = true;
|
||||||
return s;
|
return s;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue