X-Git-Url: http://dolda2000.com/gitweb/?a=blobdiff_plain;f=wrw%2Freq.py;h=b08afae7278c52b263ab277b91c38d860ceadec9;hb=51a13716668cc48bf87e0d0296f8b9900fafe83b;hp=469c5b85e2cec0050cacffa699c5a087bacf3957;hpb=22fcd0a7a5074ee0ae7651c4f0da13bb54cf0e5b;p=wrw.git diff --git a/wrw/req.py b/wrw/req.py index 469c5b8..b08afae 100644 --- a/wrw/req.py +++ b/wrw/req.py @@ -21,7 +21,7 @@ class headdict(object): def __iter__(self): return iter((list[0] for list in self.dict.values())) - def get(self, key, default = ""): + def get(self, key, default=""): if key.lower() in self.dict: return self.dict[key.lower()][1] return default @@ -140,15 +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(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_": @@ -225,6 +230,7 @@ class copyrequest(request): self.https = p.https self.ihead = p.ihead self.ohead = p.ohead + self.input = p.input def status(self, code, msg): return self.parent.status(code, msg)