X-Git-Url: http://dolda2000.com/gitweb/?p=wrw.git;a=blobdiff_plain;f=wrw%2Freq.py;h=fbe732b315d2ca45026f6115a8536ba7597ff4fd;hp=5fbc2fe28ad65a3a88b440a374ebe0e5de20217f;hb=809f0edc1d621010d0cf62ced892f13ee24fde8e;hpb=381b2eefcd81c8b717df62bad056c326d61b4b52 diff --git a/wrw/req.py b/wrw/req.py index 5fbc2fe..fbe732b 100644 --- a/wrw/req.py +++ b/wrw/req.py @@ -1,4 +1,4 @@ -import io +import StringIO __all__ = ["request"] @@ -56,7 +56,7 @@ class limitreader(object): self.bk = back self.limit = limit self.rb = 0 - self.buf = bytearray() + self.buf = "" def close(self): pass @@ -69,9 +69,9 @@ class limitreader(object): ret = self.bk.read(ra - len(self.buf)) if ret == "": raise IOError("Unexpected EOF") - self.buf.extend(ret) + self.buf += ret self.rb += len(ret) - ret = str(self.buf[:ra]) + ret = self.buf[:ra] self.buf = self.buf[ra:] return ret @@ -80,17 +80,17 @@ class limitreader(object): while True: p = self.buf.find('\n', off) if p >= 0: - ret = str(self.buf[:p + 1]) + ret = self.buf[:p + 1] self.buf = self.buf[p + 1:] return ret off = len(self.buf) if size >= 0 and len(self.buf) >= size: - ret = str(self.buf[:size]) + ret = self.buf[:size] self.buf = self.buf[size:] return ret if self.rb == self.limit: - ret = str(self.buf) - self.buf = bytearray() + ret = self.buf + self.buf = "" return ret ra = self.limit - self.rb if size >= 0: @@ -99,7 +99,7 @@ class limitreader(object): ret = self.bk.read(ra) if ret == "": raise IOError("Unpexpected EOF") - self.buf.extend(ret) + self.buf += ret self.rb += len(ret) def readlines(self, hint=None): @@ -148,7 +148,7 @@ class origrequest(request): self.input = limitreader(env["wsgi.input"], int(clen)) else: # XXX: What to do? - self.input = io.BytesIO("") + self.input = StringIO.StringIO("") else: # Assume input is chunked and read until ordinary EOF. self.input = env["wsgi.input"]