* fhandler_socket.cc (fhandler_socket::evaluate_events): Slightly

rearrange code.  Rephrase a comment.
This commit is contained in:
Corinna Vinschen 2014-10-11 10:50:36 +00:00
parent 3ab591cf71
commit 9f64fd8081
2 changed files with 8 additions and 3 deletions

View File

@ -1,3 +1,8 @@
2014-10-11 Corinna Vinschen <corinna@vinschen.de>
* fhandler_socket.cc (fhandler_socket::evaluate_events): Slightly
rearrange code. Rephrase a comment.
2014-10-10 Corinna Vinschen <corinna@vinschen.de>
* dlfcn.cc (dlopen): Disable old 32 bit code on 64 bit.

View File

@ -634,15 +634,15 @@ fhandler_socket::evaluate_events (const long event_mask, long &events,
{
if (events & FD_CONNECT)
{
int wsa_err = 0;
if ((wsa_err = wsock_events->connect_errorcode) != 0)
int wsa_err = wsock_events->connect_errorcode;
if (wsa_err)
{
/* CV 2014-04-23: This is really weird. If you call connect
asynchronously on a socket and then select, an error like
"Connection refused" is set in the event and in the SO_ERROR
socket option. If you call connect, then dup, then select,
the error is set in the event, but not in the SO_ERROR socket
option, even if the dup'ed socket handle refers to the same
option, despite the dup'ed socket handle referring to the same
socket. We're trying to workaround this problem here by
taking the connect errorcode from the event and write it back
into the SO_ERROR socket option.