[Python-checkins] python/dist/src/Lib imaplib.py,1.51,1.52
pierslauder@users.sourceforge.net
pierslauder@users.sourceforge.net
Sun, 23 Jun 2002 03:47:15 -0700
Update of /cvsroot/python/python/dist/src/Lib
In directory usw-pr-cvs1:/tmp/cvs-serv1482/dist/src/Lib
Modified Files:
imaplib.py
Log Message:
Fix IMAP4_SSL read and send methods to take account of short data
Index: imaplib.py
===================================================================
RCS file: /cvsroot/python/python/dist/src/Lib/imaplib.py,v
retrieving revision 1.51
retrieving revision 1.52
diff -C2 -d -r1.51 -r1.52
*** imaplib.py 17 Jun 2002 12:43:20 -0000 1.51
--- imaplib.py 23 Jun 2002 10:47:13 -0000 1.52
***************
*** 19,23 ****
# GET/SETQUOTA contributed by Andreas Zeidler <az@kreativkombinat.de> June 2002.
! __version__ = "2.52"
import binascii, re, socket, time, random, sys
--- 19,23 ----
# GET/SETQUOTA contributed by Andreas Zeidler <az@kreativkombinat.de> June 2002.
! __version__ = "2.53"
import binascii, re, socket, time, random, sys
***************
*** 1057,1065 ****
def read(self, size):
"""Read 'size' bytes from remote."""
! return self.sslobj.read(size)
def readline(self):
"""Read line from remote."""
line = ""
while 1:
--- 1057,1071 ----
def read(self, size):
"""Read 'size' bytes from remote."""
! # sslobj.read() sometimes returns < size bytes
! data = self.sslobj.read(size)
! while len(data) < size:
! data += self.sslobj.read(len(data)-size)
!
! return data
def readline(self):
"""Read line from remote."""
+ # NB: socket.ssl needs a "readline" method, or perhaps a "makefile" method.
line = ""
while 1:
***************
*** 1071,1075 ****
def send(self, data):
"""Send data to remote."""
! self.sslobj.write(data)
--- 1077,1088 ----
def send(self, data):
"""Send data to remote."""
! # NB: socket.ssl needs a "sendall" method to match socket objects.
! bytes = len(data)
! while bytes > 0:
! sent = self.sslobj.write(data)
! if sent == bytes:
! break # avoid copy
! data = data[sent:]
! bytes = bytes - sent