if "X-Ash-Server-Port" in req: env["SERVER_PORT"] = req["X-Ash-Server-Port"]
if "X-Ash-Protocol" in req and req["X-Ash-Protocol"] == "https": env["HTTPS"] = "on"
if "X-Ash-Address" in req: env["REMOTE_ADDR"] = req["X-Ash-Address"]
- if "Content-Type" in req: env["CONTENT_TYPE"] = req["Content-Type"]
- if "Content-Length" in req: env["CONTENT_LENGTH"] = req["Content-Length"]
+ if "Content-Type" in req:
+ env["CONTENT_TYPE"] = req["Content-Type"]
+ # The CGI specification does not strictly require this, but
+ # many actualy programs and libraries seem to.
+ del env["HTTP_CONTENT_TYPE"]
+ if "Content-Length" in req:
+ env["CONTENT_LENGTH"] = req["Content-Length"]
+ del env["HTTP_CONTENT_TYPE"]
if "X-Ash-File" in req: env["SCRIPT_FILENAME"] = absolutify(req["X-Ash-File"])
if "X-Ash-Protocol" in req: env["wsgi.url_scheme"] = req["X-Ash-Protocol"]
env["wsgi.input"] = req.sk
("HTTP_X_ASH_ADDRESS", "REMOTE_ADDR"), ("HTTP_CONTENT_TYPE", "CONTENT_TYPE"),
("HTTP_CONTENT_LENGTH", "CONTENT_LENGTH"), ("HTTP_X_ASH_PROTOCOL", "wsgi.url_scheme")]:
if src in env: env[tgt] = env[src]
+ for key in ["HTTP_CONTENT_TYPE", "HTTP_CONTENT_LENGTH"]:
+ # The CGI specification does not strictly require this, but
+ # many actualy programs and libraries seem to.
+ if key in env: del env[key]
if "X-Ash-Protocol" in req and req["X-Ash-Protocol"] == b"https": env["HTTPS"] = "on"
if "X-Ash-File" in req: env["SCRIPT_FILENAME"] = absolutify(req["X-Ash-File"].decode(locale.getpreferredencoding()))
env["wsgi.input"] = req.sk