Hi all, SourceForge isn't letting me in, so I'm dropping a note here to report that Raymond Hettinger's changes to httplib.py (Rev 1.72 on Wed Feb 26 22:45:18 2003 UTC) have broken the read() method on the SSLFile object. I suspect that he was trying to be clever by adding iterators to code that worked just fine (if not better) without them. Unfortunately, clever code has to be tested. The diff below repairs it, though I'd be just as happy if that part of Rev 1.72 was reverted. --- httplib.py.orig 2003-03-05 19:37:28.000000000 -0500 +++ httplib.py 2003-03-06 10:11:01.000000000 -0500 @@ -864,13 +864,15 @@ def read(self, size=None): L = [self._buf] + self._buf = '' if size is None: - self._buf = '' for s in iter(self._read, ""): L.append(s) - return "".join(L) else: - avail = len(self._buf) + avail = len(L[0]) + if avail >= size: + self._buf = L[0][size:] + return L[0][:size] for s in iter(self._read, ""): L.append(s) avail += len(s) @@ -878,14 +880,19 @@ all = "".join(L) self._buf = all[size:] return all[:size] + return "".join(L) def readline(self): L = [self._buf] self._buf = '' + i = L[0].find("\n") + 1 + if i > 0: + self._buf = L[0][i:] + return L[0][:i] for s in iter(self._read, ""): L.append(s) - if "\n" in s: - i = s.find("\n") + 1 + i = s.find("\n") + 1 + if i > 0: self._buf = s[i:] L[-1] = s[:i] break Regards, -Kevin -- -- Kevin Jacobs The OPAL Group - Enterprise Systems Architect Voice: (216) 986-0710 x 19 E-mail: jacobs@theopalgroup.com Fax: (216) 986-0714 WWW: http://www.theopalgroup.com
participants (4)
-
Kevin Jacobs
-
Neal Norwitz
-
Raymond Hettinger
-
Tim Peters