X-Git-Url: http://dolda2000.com/gitweb/?a=blobdiff_plain;ds=sidebyside;f=wrw%2Freq.py;fp=wrw%2Freq.py;h=b65a0b95a680d4d85569d68d4e68d9da608e78dd;hb=eefc34a8983681c86fb57dffe200034a86695a3b;hp=4b9dd7139dd6064d026bdbe2b88c8e0f6092be48;hpb=609f664f0fa5b4c94614a7c038be7238c719b2f2;p=wrw.git diff --git a/wrw/req.py b/wrw/req.py index 4b9dd71..b65a0b9 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): if clen.isdigit(): self.input = limitreader(env["wsgi.input"], int(clen)) if self.input is None: - self.input = io.BytesIO("") + self.input = StringIO.StringIO("") self.ohead = headdict() for k, v in env.items(): if k[:5] == "HTTP_":