summaryrefslogtreecommitdiff
path: root/wsgitools/scgi
diff options
context:
space:
mode:
authorHelmut Grohne <helmut@subdivi.de>2007-04-25 14:24:13 +0200
committerHelmut Grohne <helmut@subdivi.de>2007-04-25 14:24:13 +0200
commitdfac4c7ad90ccf11d629ee19be01b7999d4ae107 (patch)
tree7a09f21c23a9e1380476a3467c392c775c70295a /wsgitools/scgi
parent5b5b4992ffdc3c3dc3b28c004f211288fb6affcf (diff)
downloadwsgitools-dfac4c7ad90ccf11d629ee19be01b7999d4ae107.tar.gz
some environ fixups in scgi.*
Diffstat (limited to 'wsgitools/scgi')
-rw-r--r--wsgitools/scgi/asynchronous.py4
-rw-r--r--wsgitools/scgi/forkpool.py8
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__")