Antoine Pitrou added the comment:
> support.transient doesn't help here since no exception is raised
An exception can still be raised in do_handshake(), which is called when the
connection succeeds. But, yes, it's otherwise useless.
> Note that I'm not sure that connect_ex returning None is normal in the
> first place
It is not. The 2.7 implementation currently calls socket.connect() and catches
socket errors, while the 3.2 implementation directly calls socket.connect_ex().
This means the 2.7 implementation will unwillingly catch name resolution
errors, and other issues:
>>> socket.socket().connect_ex(("svnn.python.org", 443))
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/home/antoine/cpython/27/Lib/socket.py", line 224, in meth
return getattr(self._sock,name)(*args)
socket.gaierror: [Errno -5] No address associated with hostname
>>> ssl.wrap_socket(socket.socket()).connect_ex(("svnn.python.org", 443))
-5
I will backport the 3.2 implementation of connect_ex() in order to fix this
inconsistency. Unfortunately there is no easy way to test for it.
----------
_______________________________________
Python tracker <[email protected]>
<http://bugs.python.org/issue16763>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe:
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com