limit amount of read chunks, and cleanups

git-svn-id: https://linkchecker.svn.sourceforge.net/svnroot/linkchecker/trunk/linkchecker@3017 e7d03fd6-7b0d-0410-9947-9c21f3af8025
This commit is contained in:
calvin 2006-01-11 22:03:58 +00:00
parent 0bb41a5ec3
commit 0681b1889f

View file

@ -151,6 +151,9 @@ HTTP_VERSION_NOT_SUPPORTED = 505
INSUFFICIENT_STORAGE = 507
NOT_EXTENDED = 510
# maximal amount of data to read at one time in _safe_read
MAXAMOUNT = 1048576
class HTTPMessage(mimetools.Message):
def addheader(self, key, value):
@ -493,7 +496,7 @@ class HTTPResponse:
line = line[:i] # strip chunk-extensions
try:
chunk_left = int(line, 16)
except ValueError, msg:
except ValueError:
raise IncompleteRead("Invalid chunk length at %r" % line)
if chunk_left == 0:
break
@ -542,14 +545,14 @@ class HTTPResponse:
reading. If the bytes are truly not available (due to EOF), then the
IncompleteRead exception can be used to detect the problem.
"""
s = ''
s = []
while amt > 0:
chunk = self.fp.read(amt)
chunk = self.fp.read(min(amt, MAXAMOUNT))
if not chunk:
raise IncompleteRead(s)
s += chunk
s.append(chunk)
amt -= len(chunk)
return s
return ''.join(s)
def getheader(self, name, default=None):
if self.msg is None: