Guido van Rossum <[email protected]> added the comment:
The example works for me if I make this change:
--- Lib/cgi.py (revision 81862)
+++ Lib/cgi.py (working copy)
@@ -608,7 +608,7 @@
parser = email.parser.FeedParser()
# Create bogus content-type header for proper multipart parsing
parser.feed('Content-Type: %s; boundary=%s\r\n\r\n' % (self.type, ib))
- parser.feed(self.fp.read())
+ parser.feed(self.fp.read(self.length))
full_msg = parser.close()
# Get subparts
msgs = full_msg.get_payload()
However this seems iffy to me because the content length presumably counts
bytes whereas self.fp seems to be a text file, but since most HTTP clients
don't close the connection, without some kind of boundary on the read() call it
just hangs forever.
Also someone pointed out to me offline that this change may be needed,
separately (though I haven't confirmed this yet):
--- Lib/cgi.py (revision 81862)
+++ Lib/cgi.py (working copy)
@@ -233,6 +233,7 @@
lines = []
while 1:
line = fp.readline()
+ line = line.decode()
if not line:
terminator = lastpart # End outer loop
break
----------
components: -Documentation
nosy: +gvanrossum
_______________________________________
Python tracker <[email protected]>
<http://bugs.python.org/issue8077>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe:
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com