diff options
author | Helmut Grohne <helmut@subdivi.de> | 2007-04-25 14:24:13 +0200 |
---|---|---|
committer | Helmut Grohne <helmut@subdivi.de> | 2007-04-25 14:24:13 +0200 |
commit | dfac4c7ad90ccf11d629ee19be01b7999d4ae107 (patch) | |
tree | 7a09f21c23a9e1380476a3467c392c775c70295a /wsgitools/scgi | |
parent | 5b5b4992ffdc3c3dc3b28c004f211288fb6affcf (diff) | |
download | wsgitools-dfac4c7ad90ccf11d629ee19be01b7999d4ae107.tar.gz |
some environ fixups in scgi.*
Diffstat (limited to 'wsgitools/scgi')
-rw-r--r-- | wsgitools/scgi/asynchronous.py | 4 | ||||
-rw-r--r-- | wsgitools/scgi/forkpool.py | 8 |
2 files changed, 10 insertions, 2 deletions
diff --git a/wsgitools/scgi/asynchronous.py b/wsgitools/scgi/asynchronous.py index ff226de..f5a6a43 100644 --- a/wsgitools/scgi/asynchronous.py +++ b/wsgitools/scgi/asynchronous.py @@ -39,7 +39,7 @@ class SCGIConnection(asyncore.dispatcher): return {"wsgi.version": (1, 0), "wsgi.input": self.body, "wsgi.errors": self.server.error, - "wsgi.url_scheme": "http", # TODO: this is wrong + "wsgi.url_scheme": "http", "wsgi.multithread": False, "wsgi.multiprocess": False, "wsgi.run_once": False} @@ -116,6 +116,8 @@ class SCGIConnection(asyncore.dispatcher): self.inbuff = "" self.reqlen = 0 self.environ.update(self._wsgi_headers()) + if self.environ.get("HTTPS", "no").lower() in ('yes', 'y', '1'): + self.environ["wsgi.url_scheme"] = "https" if "HTTP_CONTENT_TYPE" in self.environ: self.environ["CONTENT_TYPE"] = \ self.environ.pop("HTTP_CONTENT_TYPE") diff --git a/wsgitools/scgi/forkpool.py b/wsgitools/scgi/forkpool.py index 6476458..157e320 100644 --- a/wsgitools/scgi/forkpool.py +++ b/wsgitools/scgi/forkpool.py @@ -214,10 +214,16 @@ class SCGIServer: "wsgi.version": (1, 0), "wsgi.input": SocketFileWrapper(con), "wsgi.errors": self.error, - "wsgi.url_scheme": "http", # TODO: this is wrong + "wsgi.url_scheme": "http", "wsgi.multithread": False, "wsgi.multiprocess": True, "wsgi.run_once": False}) + if environ.get("HTTPS", "no").lower() in ('yes', 'y', '1'): + environ["wsgi.url_scheme"] = "https" + if "HTTP_CONTENT_TYPE" in environ: + environ["CONTENT_TYPE"] = environ.pop("HTTP_CONTENT_TYPE") + if "HTTP_CONTENT_LENGTH" in environ: + del environ["HTTP_CONTENT_LENGTH"] # TODO: better way? result = self.wsgiapp(environ, start_response) assert hasattr(result, "__iter__") |