mirror of https://github.com/python/cpython
Fixed IMAP4_SSL read and readlines code per patch 956394
This commit is contained in:
parent
6e1fd2f208
commit
8f2b24401e
|
@ -1100,21 +1100,24 @@ class IMAP4_SSL(IMAP4):
|
||||||
def read(self, size):
|
def read(self, size):
|
||||||
"""Read 'size' bytes from remote."""
|
"""Read 'size' bytes from remote."""
|
||||||
# sslobj.read() sometimes returns < size bytes
|
# sslobj.read() sometimes returns < size bytes
|
||||||
data = self.sslobj.read(size)
|
chunks = []
|
||||||
while len(data) < size:
|
read = 0
|
||||||
data += self.sslobj.read(size-len(data))
|
while read < size:
|
||||||
|
data = self.sslobj.read(size-read)
|
||||||
|
read += len(data)
|
||||||
|
chunks.append(size)
|
||||||
|
|
||||||
return data
|
return ''.join(chunks)
|
||||||
|
|
||||||
|
|
||||||
def readline(self):
|
def readline(self):
|
||||||
"""Read line from remote."""
|
"""Read line from remote."""
|
||||||
# NB: socket.ssl needs a "readline" method, or perhaps a "makefile" method.
|
# NB: socket.ssl needs a "readline" method, or perhaps a "makefile" method.
|
||||||
line = ""
|
line = []
|
||||||
while 1:
|
while 1:
|
||||||
char = self.sslobj.read(1)
|
char = self.sslobj.read(1)
|
||||||
line += char
|
line.append(char)
|
||||||
if char == "\n": return line
|
if char == "\n": return ''.join(line)
|
||||||
|
|
||||||
|
|
||||||
def send(self, data):
|
def send(self, data):
|
||||||
|
|
Loading…
Reference in New Issue