[Python-checkins] CVS: python/dist/src/Lib ftplib.py,1.58,1.59
Guido van Rossum
gvanrossum@users.sourceforge.net
2001年10月16日 12:45:54 -0700
Update of /cvsroot/python/python/dist/src/Lib
In directory usw-pr-cvs1:/tmp/cvs-serv4678
Modified Files:
ftplib.py
Log Message:
Fix SF bug #459767: ftplib fails with files > 2GB
size(), parse150(): try int() first, catch OverflowError, fall back to
long().
Index: ftplib.py
===================================================================
RCS file: /cvsroot/python/python/dist/src/Lib/ftplib.py,v
retrieving revision 1.58
retrieving revision 1.59
diff -C2 -d -r1.58 -r1.59
*** ftplib.py 2001年10月07日 08:53:32 1.58
--- ftplib.py 2001年10月16日 19:45:52 1.59
***************
*** 344,348 ****
def transfercmd(self, cmd, rest=None):
! """Like nstransfercmd() but returns only the socket."""
return self.ntransfercmd(cmd, rest)[0]
--- 344,348 ----
def transfercmd(self, cmd, rest=None):
! """Like ntransfercmd() but returns only the socket."""
return self.ntransfercmd(cmd, rest)[0]
***************
*** 506,510 ****
resp = self.sendcmd('SIZE ' + filename)
if resp[:3] == '213':
! return int(resp[3:].strip())
def mkd(self, dirname):
--- 506,514 ----
resp = self.sendcmd('SIZE ' + filename)
if resp[:3] == '213':
! s = resp[3:].strip()
! try:
! return int(s)
! except OverflowError:
! return long(s)
def mkd(self, dirname):
***************
*** 550,556 ****
_150_re = re.compile("150 .* \((\d+) bytes\)", re.IGNORECASE)
m = _150_re.match(resp)
! if m:
! return int(m.group(1))
! return None
--- 554,564 ----
_150_re = re.compile("150 .* \((\d+) bytes\)", re.IGNORECASE)
m = _150_re.match(resp)
! if not m:
! return None
! s = m.group(1)
! try:
! return int(s)
! except OverflowError:
! return long(s)