diff options
author | Nick Mathewson <nickm@torproject.org> | 2017-03-15 11:53:01 -0400 |
---|---|---|
committer | Nick Mathewson <nickm@torproject.org> | 2017-03-15 12:16:17 -0400 |
commit | 44514058b96440eaa1b364b915860ae372207ca6 (patch) | |
tree | 02f31e95825f97581fe7775935eecf8432f4412d /src/win32/orconfig.h | |
parent | d642ceb8dff5e837bc0e27f9f50812beece06401 (diff) | |
download | tor-44514058b96440eaa1b364b915860ae372207ca6.tar.gz tor-44514058b96440eaa1b364b915860ae372207ca6.zip |
Correctly handle fd-drain errors on windows workqueues
Windows doesn't let you check the socket error for a socket with
WSAGetLastError() and getsockopt(SO_ERROR). But
getsockopt(SO_ERROR) clears the error on the socket, so you can't
call it more than once per error.
When we introduced recv_ni to help drain alert sockets, back in
0.2.6.3-alpha, we had the failure path for recv_ni call getsockopt()
twice, though: once to check for EINTR and one to check for EAGAIN.
Of course, we never got the eagain, so we treated it as an error,
and warned about: "No error".
The fix here is to have these functions return -errno on failure.
Fixes bug 21540; bugfix on 0.2.6.3-alpha.
Diffstat (limited to 'src/win32/orconfig.h')
0 files changed, 0 insertions, 0 deletions