Alexey Gorshkov added the comment:
Ok. As
https://docs.python.org/dev/library/ssl.html#notes-on-non-blocking-sockets
says: "Calling select() tells you that the OS-level socket can be read from (or
written to)", and here is situation: len(select([ssl_socket],[],[], 0.2)[0])
returns 0, but ssl layer has pending data and "SSLWantWriteError or
SSLWantReadError instead of BlockingIOError" are not raised, because there is
no error.. How should app know what it's need to do another recv() call? Are
You suggesting to make loop like this (as for non-blocking socket)?
while True:
ssl_socket.recv(4096)
if something:
break
what I think is: pending() method - is fine solution for knowing needed
information about ssl layer status.
SSL_pending(3) is not deprecated in OpenSSL, and I do not see reason why it
should be deprecated in python. I do not think it should be deprecated only
because it is not used. And it is not need to tell about asyncio, Tornado or
Twisted.
----------
_______________________________________
Python tracker <[email protected]>
<http://bugs.python.org/issue21430>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe:
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com