New submission from Dmitry Dvoinikov <[EMAIL PROTECTED]>: If I connect a TCP socket s using regular s.connect(), then wrap it using ssl.wrap_socket(s) and call do_handshake on the resulting SSL socket, handshake fails in ssl.py:320 with
AttributeError: 'NoneType' object has no attribute 'do_handshake' The problem is that when TCP socket is being wrapped in ssl.py:116, it is not recognized as connected by a call to getpeername(), the exception thrown in ssl.py:116 and silenced is this: [Errno 10057] A request to send or receive data was disallowed because the socket is not connected and (when sending on a datagram socket using a sendto call) no address was supplied This is awkward, because synchronous s.connect() has just returned successfully. Even more weird, if I insert s.getpeername() between TCP connect() and SSL do_handshake() the latter works fine. Here is a working sample: ------------------------------- from socket import socket, AF_INET, SOCK_STREAM from ssl import wrap_socket, PROTOCOL_TLSv1, CERT_NONE def test_handshake(address, WORKAROUND): s = socket(AF_INET, SOCK_STREAM) s.settimeout(3.0) s.connect(address) if WORKAROUND: s.getpeername() ssl = wrap_socket(s, server_side = False, ssl_version = PROTOCOL_TLSv1, cert_reqs = CERT_NONE, do_handshake_on_connect = False) ssl.do_handshake() address = ("www.amazon.com", 443) test_handshake(address, True) # with workaround print("worked so far") test_handshake(address, False) print("but not here it didn't") ------------------------------- I'm using Python 3.0rc1 under Windows. ---------- components: Library (Lib) messages: 75077 nosy: ddvoinikov severity: normal status: open title: SSL handshake fails after TCP connection in getpeername() type: behavior versions: Python 3.0 _______________________________________ Python tracker <[EMAIL PROTECTED]> <http://bugs.python.org/issue4171> _______________________________________ _______________________________________________ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com