From: Giampaolo RodolĂ  Date: Mon, 23 Aug 2010 21:56:11 +0000 (+0000) Subject: Merged revisions 84284 via svnmerge from X-Git-Tag: v3.1.3rc1~309 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=3fac43f89fb08487dc48fffa791d1c205d9710c5;p=python Merged revisions 84284 via svnmerge from svn+ssh://pythondev@svn.python.org/python/branches/py3k ........ r84284 | giampaolo.rodola | 2010-08-23 23:53:41 +0200 (lun, 23 ago 2010) | 1 line fix issue 658749: correctly interprets asyncore's windows errors on connect() ........ --- diff --git a/Lib/asyncore.py b/Lib/asyncore.py index 7b922a98cc..7f06e43e71 100644 --- a/Lib/asyncore.py +++ b/Lib/asyncore.py @@ -51,7 +51,7 @@ import socket import sys import time import os -from errno import EALREADY, EINPROGRESS, EWOULDBLOCK, ECONNRESET, \ +from errno import EALREADY, EINPROGRESS, EWOULDBLOCK, ECONNRESET, EINVAL, \ ENOTCONN, ESHUTDOWN, EINTR, EISCONN, EBADF, ECONNABORTED, errorcode try: @@ -333,8 +333,8 @@ class dispatcher: def connect(self, address): self.connected = False err = self.socket.connect_ex(address) - # XXX Should interpret Winsock return values - if err in (EINPROGRESS, EALREADY, EWOULDBLOCK): + if err in (EINPROGRESS, EALREADY, EWOULDBLOCK) \ + or err == EINVAL and os.name in ('nt', 'ce'): return if err in (0, EISCONN): self.addr = address diff --git a/Misc/NEWS b/Misc/NEWS index d88a483756..b94623dc7d 100644 --- a/Misc/NEWS +++ b/Misc/NEWS @@ -95,6 +95,9 @@ C-API Library ------- +- Issue #658749: asyncore's connect() method now correctly interprets winsock + errors. + - Issue #9214: Set operations on KeysView or ItemsView in the collections module now correctly return a set. (Patch by Eli Bendersky.)