On 18/10/2013 10:37pm, Guido van Rossum wrote:
Good sleuthing! Does the attached patch fix it?

(Off-topic: the code is pretty inconsistent about catching
BaseException. Maybe it shouldn't be caught at all?)

It fixes it in the sense of printing a sensible traceback;-)

$ PYTHONPATH='c:/Repos/tulip' /c/Repos/cpython-33/PCbuild/python fetch3.py http://dropbox.com -v
* Connecting to dropbox.com:80 using tcp
* dropbox.com resolves to 108.160.165.62, 108.160.166.62, 199.47.216.179, 199.47.217.179
* New connection ('108.160.165.62', 80, False)
* Connected to ('108.160.165.62', 80)
> GET / HTTP/1.1
> Host: dropbox.com
>
< HTTP/1.1 301 Moved Permanently
< Server: nginx
< Date: Fri, 18 Oct 2013 22:40:13 GMT
< Content-Type: text/html
< Content-Length: 178
< Connection: keep-alive
< Location: https://dropbox.com/
<
redirect to https://dropbox.com/
* Connecting to dropbox.com:443 using ssl
* dropbox.com resolves to 108.160.165.62, 108.160.166.62, 199.47.216.179, 199.47.217.179
Traceback (most recent call last):
  File "fetch3.py", line 211, in <module>
    main()
  File "fetch3.py", line 206, in main
    body = loop.run_until_complete(fetch(sys.argv[1], '-v' in sys.argv))
File "c:\Repos\tulip\asyncio\base_events.py", line 177, in run_until_complete
    return future.result()
  File "c:\Repos\tulip\asyncio\futures.py", line 221, in result
    raise self._exception
  File "c:\Repos\tulip\asyncio\tasks.py", line 257, in _step
    result = coro.throw(exc)
  File "fetch3.py", line 192, in fetch
    yield from request.connect(pool)
  File "fetch3.py", line 80, in connect
    ssl=self.ssl)
  File "fetch3.py", line 36, in open_connection
    reader, writer = yield from open_connection(host, port, ssl=ssl)
  File "c:\Repos\tulip\asyncio\streams.py", line 41, in open_connection
    lambda: protocol, host, port, **kwds)
File "c:\Repos\tulip\asyncio\base_events.py", line 356, in create_connection
    yield from waiter
  File "c:\Repos\tulip\asyncio\futures.py", line 318, in __iter__
    yield self  # This tells Task to wait for completion.
  File "c:\Repos\tulip\asyncio\tasks.py", line 308, in _wakeup
    value = future.result()
  File "c:\Repos\tulip\asyncio\futures.py", line 221, in result
    raise self._exception
File "c:\Repos\tulip\asyncio\selector_events.py", line 579, in _on_handshake
    self._sock.do_handshake()
  File "C:\Repos\cpython-33\lib\ssl.py", line 520, in do_handshake
    self._sslobj.do_handshake()
ssl.SSLError: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:553)

--
Richard

_______________________________________________
Python-Dev mailing list
Python-Dev@python.org
https://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
https://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com

Reply via email to