From: Fredrik Tolf Date: Wed, 19 Dec 2012 05:23:29 +0000 (+0100) Subject: Merge branch 'master' into python3 X-Git-Url: http://dolda2000.com/gitweb/?p=wrw.git;a=commitdiff_plain;h=a02127330452ddc72406bb1e2e3eeadefe773ebb;hp=-c Merge branch 'master' into python3 Conflicts: wrw/req.py --- a02127330452ddc72406bb1e2e3eeadefe773ebb diff --combined wrw/req.py index 469c5b8,5fbc2fe..11f856c --- a/wrw/req.py +++ b/wrw/req.py @@@ -19,7 -19,7 +19,7 @@@ class headdict(object) del self.dict[key.lower()] def __iter__(self): - return iter((list[0] for list in self.dict.itervalues())) + return iter((list[0] for list in self.dict.values())) def get(self, key, default = ""): if key.lower() in self.dict: @@@ -67,29 -67,29 +67,29 @@@ class limitreader(object) ra = min(ra, size) while len(self.buf) < ra: ret = self.bk.read(ra - len(self.buf)) - if ret == "": + if ret == b"": raise IOError("Unexpected EOF") self.buf.extend(ret) self.rb += len(ret) - ret = str(self.buf[:ra]) + ret = bytes(self.buf[:ra]) self.buf = self.buf[ra:] return ret def readline(self, size=-1): off = 0 while True: - p = self.buf.find('\n', off) + p = self.buf.find(b'\n', off) if p >= 0: - ret = str(self.buf[:p + 1]) + ret = bytes(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 = bytes(self.buf[:size]) self.buf = self.buf[size:] return ret if self.rb == self.limit: - ret = str(self.buf) + ret = bytes(self.buf) self.buf = bytearray() return ret ra = self.limit - self.rb @@@ -97,7 -97,7 +97,7 @@@ ra = min(ra, size) ra = min(ra, 1024) ret = self.bk.read(ra) - if ret == "": + if ret == b"": raise IOError("Unpexpected EOF") self.buf.extend(ret) self.rb += len(ret) @@@ -109,9 -109,9 +109,9 @@@ class lineiter(object): def __iter__(self): return self - def next(self): + def __next__(self): ret = rd.readline() - if ret == "": + if ret == b"": raise StopIteration() return ret return lineiter() @@@ -140,15 -140,20 +140,20 @@@ class origrequest(request) self.servername = env["SERVER_NAME"] self.https = "HTTPS" in env self.ihead = headdict() - self.input = None if "CONTENT_TYPE" in env: self.ihead["Content-Type"] = env["CONTENT_TYPE"] - if "CONTENT_LENGTH" in env: - clen = self.ihead["Content-Length"] = env["CONTENT_LENGTH"] - if clen.isdigit(): - self.input = limitreader(env["wsgi.input"], int(clen)) - if self.input is None: - self.input = io.BytesIO(b"") + if "CONTENT_LENGTH" in env: + clen = self.ihead["Content-Length"] = env["CONTENT_LENGTH"] + if clen.isdigit(): + self.input = limitreader(env["wsgi.input"], int(clen)) + else: + # XXX: What to do? - self.input = io.BytesIO("") ++ self.input = io.BytesIO(b"") + else: + # Assume input is chunked and read until ordinary EOF. + self.input = env["wsgi.input"] + else: + self.input = None self.ohead = headdict() for k, v in env.items(): if k[:5] == "HTTP_":