One could use the Referer:
header, if present.
Index: standalone.py
===================================================================
--- standalone.py (revision 2721)
+++ standalone.py (working copy)
@@ -325,21 +325,22 @@
Request.__init__(self)
self.__handler = handler
self.__status_sent = False
-
- self.scheme = 'http'
+ headers = handler.headers
+ self.scheme = 'http' # as default, but use Referer: header if
present
+ if headers.has_key('Referer'):
+ self.scheme = headers['Referer'].split(':')[0]
self.method = self.__handler.command
self.remote_addr = str(self.__handler.client_address[0])
self.server_name = self.__handler.server.server_name
self.server_port = self.__handler.server.server_port
- if self.__handler.headers.has_key('Cookie'):
- self.incookie.load(self.__handler.headers['Cookie'])
+ if headers.has_key('Cookie'):
+ self.incookie.load(headers['Cookie'])
self.cgi_location = '/' + project_name
self.idx_location = '/'
environ = {'REQUEST_METHOD': self.method,
'QUERY_STRING': query_string}
- headers = self.__handler.headers
if self.method in ('GET', 'HEAD'):
headers = None
self.args = TracFieldStorage(self.__handler.rfile,
environ=environ,
Thoughts?