Reverted revision 1.83, which introduced a bug and subtle incompatibility

issues.  See bug #1112856.
This commit is contained in:
Armin Rigo 2005-09-19 09:11:04 +00:00
parent cfe7dd96cf
commit 3a703b6059
1 changed files with 6 additions and 8 deletions

View File

@ -38,7 +38,8 @@ from operator import attrgetter
import sys import sys
import os import os
import urllib import urllib
import email.Parser import mimetools
import rfc822
import UserDict import UserDict
try: try:
from cStringIO import StringIO from cStringIO import StringIO
@ -107,8 +108,6 @@ log = initlog # The current logging function
# Parsing functions # Parsing functions
# ================= # =================
_header_parser = email.Parser.HeaderParser()
# Maximum input we will accept when REQUEST_METHOD is POST # Maximum input we will accept when REQUEST_METHOD is POST
# 0 ==> unlimited input # 0 ==> unlimited input
maxlen = 0 maxlen = 0
@ -271,7 +270,7 @@ def parse_multipart(fp, pdict):
data = None data = None
if terminator: if terminator:
# At start of next part. Read headers first. # At start of next part. Read headers first.
headers = _header_parser.parse(fp) headers = mimetools.Message(fp)
clength = headers.getheader('content-length') clength = headers.getheader('content-length')
if clength: if clength:
try: try:
@ -408,9 +407,8 @@ class FieldStorage:
disposition_options: dictionary of corresponding options disposition_options: dictionary of corresponding options
headers: a dictionary(-like) object (sometimes headers: a dictionary(-like) object (sometimes rfc822.Message or a
email.Message.Message or a subclass thereof) containing *all* subclass thereof) containing *all* headers
headers
The class is subclassable, mostly for the purpose of overriding The class is subclassable, mostly for the purpose of overriding
the make_file() method, which is called internally to come up with the make_file() method, which is called internally to come up with
@ -652,7 +650,7 @@ class FieldStorage:
environ, keep_blank_values, strict_parsing) environ, keep_blank_values, strict_parsing)
# Throw first part away # Throw first part away
while not part.done: while not part.done:
headers = _header_parser.parse(self.fp) headers = rfc822.Message(self.fp)
part = klass(self.fp, headers, ib, part = klass(self.fp, headers, ib,
environ, keep_blank_values, strict_parsing) environ, keep_blank_values, strict_parsing)
self.list.append(part) self.list.append(part)