]> granicus.if.org Git - python/commitdiff
From: conrad@cgl.ucsf.edu (Conrad Huang %CGL)
authorGuido van Rossum <guido@python.org>
Wed, 13 May 1998 20:13:24 +0000 (20:13 +0000)
committerGuido van Rossum <guido@python.org>
Wed, 13 May 1998 20:13:24 +0000 (20:13 +0000)
To: python-list@cwi.nl
Date: 13 May 98 18:33:11 GMT

I think I found a bug in CGIHTTPServer.py.  (Does anyone care? :-)
I was trying to use it as the web server for uploading files.
Python CGI scripts (using the CGI module) that worked for other
servers (e.g., Netscape Enterprise server) hang when run from
CGIHTTPServer.  The problem is that the content type parameters,
in particular the boundary parameter, were not passed through to
the CGI scripts, thus making the MIME parsing code choke.

My simple-minded fix is:

% diff CGIHTTPServer.py /usr/local/lib/python1.5/CGIHTTPServer.py
137,140c136
<           if self.headers.typeheader is None:
<               env['CONTENT_TYPE'] = self.headers.type
<           else:
<               env['CONTENT_TYPE'] = self.headers.typeheader
---
>           env['CONTENT_TYPE'] = self.headers.type

Conrad

Lib/CGIHTTPServer.py

index bb8cb2d239c1d48410fd4aa594d1d873c644c1dc..24bdeef7974594a1f1eebf4a892fe4a87b7eded2 100644 (file)
@@ -133,7 +133,10 @@ class CGIHTTPRequestHandler(SimpleHTTPServer.SimpleHTTPRequestHandler):
             # AUTH_TYPE
             # REMOTE_USER
             # REMOTE_IDENT
-            env['CONTENT_TYPE'] = self.headers.type
+            if self.headers.typeheader is None:
+                env['CONTENT_TYPE'] = self.headers.type
+            else:
+                env['CONTENT_TYPE'] = self.headers.typeheader
             length = self.headers.getheader('content-length')
             if length:
                 env['CONTENT_LENGTH'] = length