- for src, tgt in [("HTTP_HOST", "SERVER_NAME"), ("HTTP_X_ASH_SERVER_PORT", "SERVER_PORT"),
- ("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]
- 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()))
+ if "Host" in req: env["SERVER_NAME"] = req["Host"]
+ 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"]
+ # 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_LENGTH"]
+ 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"]