mirror of
https://github.com/python/cpython.git
synced 2025-08-01 07:33:08 +00:00
Issue #3890: Fix recv() and recv_into() on non-blocking SSL sockets.
This commit is contained in:
parent
56472c2463
commit
448da71807
2 changed files with 8 additions and 20 deletions
26
Lib/ssl.py
26
Lib/ssl.py
|
@ -210,16 +210,9 @@ class SSLSocket(socket):
|
||||||
if self._sslobj:
|
if self._sslobj:
|
||||||
if flags != 0:
|
if flags != 0:
|
||||||
raise ValueError(
|
raise ValueError(
|
||||||
"non-zero flags not allowed in calls to sendall() on %s" %
|
"non-zero flags not allowed in calls to recv() on %s" %
|
||||||
self.__class__)
|
self.__class__)
|
||||||
while True:
|
return self.read(buflen)
|
||||||
try:
|
|
||||||
return self.read(buflen)
|
|
||||||
except SSLError, x:
|
|
||||||
if x.args[0] == SSL_ERROR_WANT_READ:
|
|
||||||
continue
|
|
||||||
else:
|
|
||||||
raise x
|
|
||||||
else:
|
else:
|
||||||
return socket.recv(self, buflen, flags)
|
return socket.recv(self, buflen, flags)
|
||||||
|
|
||||||
|
@ -233,17 +226,10 @@ class SSLSocket(socket):
|
||||||
raise ValueError(
|
raise ValueError(
|
||||||
"non-zero flags not allowed in calls to recv_into() on %s" %
|
"non-zero flags not allowed in calls to recv_into() on %s" %
|
||||||
self.__class__)
|
self.__class__)
|
||||||
while True:
|
tmp_buffer = self.read(nbytes)
|
||||||
try:
|
v = len(tmp_buffer)
|
||||||
tmp_buffer = self.read(nbytes)
|
buffer[:v] = tmp_buffer
|
||||||
v = len(tmp_buffer)
|
return v
|
||||||
buffer[:v] = tmp_buffer
|
|
||||||
return v
|
|
||||||
except SSLError as x:
|
|
||||||
if x.args[0] == SSL_ERROR_WANT_READ:
|
|
||||||
continue
|
|
||||||
else:
|
|
||||||
raise x
|
|
||||||
else:
|
else:
|
||||||
return socket.recv_into(self, buffer, nbytes, flags)
|
return socket.recv_into(self, buffer, nbytes, flags)
|
||||||
|
|
||||||
|
|
|
@ -24,6 +24,8 @@ Core and Builtins
|
||||||
Library
|
Library
|
||||||
-------
|
-------
|
||||||
|
|
||||||
|
- Issue #3890: Fix recv() and recv_into() on non-blocking SSL sockets.
|
||||||
|
|
||||||
- Issue #8179: Fix macpath.realpath() on a non-existing path.
|
- Issue #8179: Fix macpath.realpath() on a non-existing path.
|
||||||
|
|
||||||
- Issue #8024: Update the Unicode database to 5.2.
|
- Issue #8024: Update the Unicode database to 5.2.
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue