* fhandler_socket.cc (fhandler_socket::evaluate_events): Call
WSASetLastError after setsockopt. Explain why.
This commit is contained in:
parent
6681d11fd3
commit
d510072c83
|
@ -1,3 +1,8 @@
|
|||
2014-06-16 Corinna Vinschen <corinna@vinschen.de>
|
||||
|
||||
* fhandler_socket.cc (fhandler_socket::evaluate_events): Call
|
||||
WSASetLastError after setsockopt. Explain why.
|
||||
|
||||
2014-06-16 Denis Excoffier <cygwin@Denis-Excoffier.org>
|
||||
|
||||
* grp.cc (getgrouplist): Fix setting ngroups to make sure to return
|
||||
|
|
|
@ -633,7 +633,6 @@ fhandler_socket::evaluate_events (const long event_mask, long &events,
|
|||
int wsa_err = 0;
|
||||
if ((wsa_err = wsock_events->connect_errorcode) != 0)
|
||||
{
|
||||
WSASetLastError (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
|
||||
|
@ -642,9 +641,14 @@ fhandler_socket::evaluate_events (const long event_mask, long &events,
|
|||
option, even if the dup'ed socket handle refers 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. */
|
||||
into the SO_ERROR socket option.
|
||||
|
||||
CV 2014-06-16: Call WSASetLastError *after* setsockopt since,
|
||||
apparently, setsockopt sets the last WSA error code to 0 on
|
||||
success. */
|
||||
setsockopt (get_socket (), SOL_SOCKET, SO_ERROR,
|
||||
(const char *) &wsa_err, sizeof wsa_err);
|
||||
WSASetLastError (wsa_err);
|
||||
ret = SOCKET_ERROR;
|
||||
}
|
||||
else
|
||||
|
|
Loading…
Reference in New Issue