diff --git a/Lib/asyncore.py b/Lib/asyncore.py index 3134ddb6164c1e..9909a6dd63d4a0 100644 --- a/Lib/asyncore.py +++ b/Lib/asyncore.py @@ -55,9 +55,24 @@ import os from errno import EALREADY, EINPROGRESS, EWOULDBLOCK, ECONNRESET, EINVAL, \ ENOTCONN, ESHUTDOWN, EINTR, EISCONN, EBADF, ECONNABORTED, EPIPE, EAGAIN, \ - errorcode, \ - WSAEWOULDBLOCK, WSAENOTCONN, WSAEINPROGRESS, WSAEALREADY, WSAEISCONN, \ - WSAECONNABORTED, WSAENOTCONN, WSAEBADF + errorcode + +if sys.platform[:3] == 'win': + # On Windows, handle the Windows error numbers + from errno import \ + WSAEWOULDBLOCK, WSAENOTCONN, WSAEINPROGRESS, WSAEALREADY, WSAEISCONN, \ + WSAECONNABORTED, WSAENOTCONN, WSAEBADF +else: + # On Posix the error codes aren't duplicated, with different numbers + WSAEWOULDBLOCK = EWOULDBLOCK + WSAENOTCONN = ENOTCONN + WSAEINPROGRESS = EINPROGRESS + WSAEALREADY = EALREADY + WSAEISCONN = EISCONN + WSAECONNABORTED = ECONNABORTED + WSAENOTCONN = ENOTCONN + WSAEBADF = EBADF + _DISCONNECTED = frozenset((ECONNRESET, ENOTCONN, ESHUTDOWN, ECONNABORTED, EPIPE, EBADF, WSAENOTCONN, WSAECONNABORTED, WSAEBADF))