SVN: r22029 - in trunk/quixote: . server

Neil Schemenauer <nascheme-fVcApmY9cLvQ3/1i3zOLAti2O/[email protected]> Fri, 18 Jul 2003 12:14:34 -0400
Newsgroups gmane.comp.web.quixote.cvs
Message-ID <[email protected]>
Author: nascheme
Date: 2003-07-18 12:01:16 -0400 (Fri, 18 Jul 2003)
New Revision: 22029

Modified:
   trunk/quixote/ACKS
   trunk/quixote/server/medusa_http.py
Log:
Propagate 'GATEWAY_INTERFACE', 'SCRIPT_FILENAME', and HTTP headers.


Modified: trunk/quixote/server/medusa_http.py
==============================================================================
--- trunk/quixote/server/medusa_http.py	2003-07-17 23:12:44 UTC (rev 22028)
+++ trunk/quixote/server/medusa_http.py	2003-07-18 16:01:16 UTC (rev 22029)
@@ -47,24 +47,32 @@
         if '?' in request.uri:
             [request.uri, query_string] = request.uri.split('?', 1)
 
-        environ = {'REQUEST_METHOD':request.command,
-                   'ACCEPT_ENCODING':msg.get('Accept-encoding'),
+        environ = {'REQUEST_METHOD': request.command,
+                   'ACCEPT_ENCODING': msg.get('Accept-encoding'),
                    'CONTENT_TYPE': msg.get('Content-type'),
-                   'CONTENT_LENGTH':len(data),
-                   'HTTP_COOKIE':msg.get('Cookie'),
-                   'HTTP_REFERER':msg.get('Referer'),
-                   'HTTP_USER_AGENT':msg.get('User-agent'),
-                   'PATH_INFO':request.uri,
-                   'QUERY_STRING':query_string,
-                   'REMOTE_ADDR':remote_addr,
-                   'REMOTE_PORT':str(remote_port),
-                   'REQUEST_URI':request.uri,
-                   'SCRIPT_NAME':'',
-                   'SERVER_NAME':self.server.ip or socket.gethostname(),
-                   'SERVER_PORT':str(self.server.port),
-                   'SERVER_PROTOCOL':'HTTP/1.1',
-                   'SERVER_SOFTWARE':self.server_name,
+                   'CONTENT_LENGTH': len(data),
+                   "GATEWAY_INTERFACE": "CGI/1.1",
+                   'HTTP_COOKIE': msg.get('Cookie'),
+                   'HTTP_REFERER': msg.get('Referer'),
+                   'HTTP_USER_AGENT': msg.get('User-agent'),
+                   'PATH_INFO': request.uri,
+                   'QUERY_STRING': query_string,
+                   'REMOTE_ADDR': remote_addr,
+                   'REMOTE_PORT': str(remote_port),
+                   'REQUEST_URI': request.uri,
+                   'SCRIPT_NAME': '',
+                   "SCRIPT_FILENAME": '',
+                   'SERVER_NAME': self.server.ip or socket.gethostname(),
+                   'SERVER_PORT': str(self.server.port),
+                   'SERVER_PROTOCOL': 'HTTP/1.1',
+                   'SERVER_SOFTWARE': self.server_name,
                    }
+        # Propagate HTTP headers - copied from twisted_http.py
+        for title, header in msg.items():
+            envname = title.replace('-', '_').upper()
+            if title not in ('content-type', 'content-length'):
+                envname = "HTTP_" + envname
+            environ[envname] = header
         for k,v in environ.items():
             if v == None:
                 environ[k] = ''

Modified: trunk/quixote/ACKS
==============================================================================
--- trunk/quixote/ACKS	2003-07-17 23:12:44 UTC (rev 22028)
+++ trunk/quixote/ACKS	2003-07-18 16:01:16 UTC (rev 22029)
@@ -9,6 +9,7 @@
 David Ascher
 Anton Benard
 Titus Brown
+Oleg Broytmann
 David M. Cooke
 Jonathan Corbet
 Herman Cuppens