summaryrefslogtreecommitdiff
path: root/Lib/httplib.py
diff options
context:
space:
mode:
authorJeremy Hylton <jeremy@alum.mit.edu>2007-08-04 03:25:17 +0000
committerJeremy Hylton <jeremy@alum.mit.edu>2007-08-04 03:25:17 +0000
commit0ee5eeb8ffb167d55a746c97c91558cf0e855c94 (patch)
tree54fc06fa1b35b7a354219541e37dec90dd1354bf /Lib/httplib.py
parent6252083f5fb107a8de87398d36da5efb5e20144c (diff)
downloadcpython-git-0ee5eeb8ffb167d55a746c97c91558cf0e855c94.tar.gz
Fix several more paths from the SSL code.
In particular, watch out for comparing b"" to "". They're not equal, but you can start at the code asking whether buf == "" for a long time before realizing that it will never be True.
Diffstat (limited to 'Lib/httplib.py')
-rw-r--r--Lib/httplib.py29
1 files changed, 14 insertions, 15 deletions
diff --git a/Lib/httplib.py b/Lib/httplib.py
index 020d5c5907..76f7203d09 100644
--- a/Lib/httplib.py
+++ b/Lib/httplib.py
@@ -435,14 +435,13 @@ class HTTPResponse:
# do we have a Content-Length?
# NOTE: RFC 2616, S4.4, #3 says we ignore this if tr_enc is "chunked"
+ self.length = None
length = self.msg.getheader("content-length")
if length and not self.chunked:
try:
self.length = int(length)
except ValueError:
- self.length = None
- else:
- self.length = None
+ pass
# does the body have a fixed length? (of zero)
if (status == NO_CONTENT or status == NOT_MODIFIED or
@@ -453,9 +452,9 @@ class HTTPResponse:
# if the connection remains open, and we aren't using chunked, and
# a content-length was not provided, then assume that the connection
# WILL close.
- if not self.will_close and \
- not self.chunked and \
- self.length is None:
+ if (not self.will_close and
+ not self.chunked and
+ self.length is None):
self.will_close = 1
def _check_close(self):
@@ -998,11 +997,11 @@ class SSLFile(SharedSocketClient):
def __init__(self, sock, ssl, bufsize=None):
SharedSocketClient.__init__(self, sock)
self._ssl = ssl
- self._buf = ''
+ self._buf = b""
self._bufsize = bufsize or self.__class__.BUFSIZE
def _read(self):
- buf = ''
+ buf = b""
# put in a loop so that we retry on transient errors
while True:
try:
@@ -1033,13 +1032,13 @@ class SSLFile(SharedSocketClient):
avail = len(self._buf)
while size is None or avail < size:
s = self._read()
- if s == "":
+ if s == b"":
break
L.append(s)
avail += len(s)
- all = "".join(L)
+ all = b"".join(L)
if size is None:
- self._buf = ""
+ self._buf = b""
return all
else:
self._buf = all[size:]
@@ -1047,20 +1046,20 @@ class SSLFile(SharedSocketClient):
def readline(self):
L = [self._buf]
- self._buf = ''
+ self._buf = b""
while 1:
i = L[-1].find("\n")
if i >= 0:
break
s = self._read()
- if s == '':
+ if s == b"":
break
L.append(s)
if i == -1:
# loop exited because there is no more data
- return "".join(L)
+ return b"".join(L)
else:
- all = "".join(L)
+ all = b"".join(L)
# XXX could do enough bookkeeping not to do a 2nd search
i = all.find("\n") + 1
line = all[:i]