X-Git-Url: http://www.dolda2000.com/gitweb/?a=blobdiff_plain;f=python3%2Fashd-wsgi3;h=8944b5ce1fe9bc2a30aef9427ab36e25b2063596;hb=328d1dbcd801cd602fb245642bede234a7726c0c;hp=cdabec34dc143721c82c3c4358a8c76a2d7d857b;hpb=64a8cd9feaab29ed99cadd9eed943a6fc7709fa4;p=ashd.git diff --git a/python3/ashd-wsgi3 b/python3/ashd-wsgi3 index cdabec3..8944b5c 100755 --- a/python3/ashd-wsgi3 +++ b/python3/ashd-wsgi3 @@ -131,10 +131,15 @@ def dowsgi(req): name = "" env["SCRIPT_NAME"] = name env["PATH_INFO"] = pi - 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")]: + for src, tgt in [("HTTP_HOST", "SERVER_NAME"), ("HTTP_X_ASH_PROTOCOL", "wsgi.url_scheme"), + ("HTTP_X_ASH_SERVER_ADDRESS", "SERVER_ADDR"), ("HTTP_X_ASH_SERVER_PORT", "SERVER_PORT"), + ("HTTP_X_ASH_ADDRESS", "REMOTE_ADDR"), ("HTTP_X_ASH_PORT", "REMOTE_PORT"), + ("HTTP_CONTENT_TYPE", "CONTENT_TYPE"), ("HTTP_CONTENT_LENGTH", "CONTENT_LENGTH")]: 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