From: Armin Rigo Date: Mon, 19 Sep 2005 09:11:04 +0000 (+0000) Subject: Reverted revision 1.83, which introduced a bug and subtle incompatibility X-Git-Tag: v2.5a0~1359 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=3a703b60593e2bc2ddde232eaad365e4c126ff42;p=python Reverted revision 1.83, which introduced a bug and subtle incompatibility issues. See bug #1112856. --- diff --git a/Lib/cgi.py b/Lib/cgi.py index eb963037f1..41dc433cd8 100755 --- a/Lib/cgi.py +++ b/Lib/cgi.py @@ -38,7 +38,8 @@ from operator import attrgetter import sys import os import urllib -import email.Parser +import mimetools +import rfc822 import UserDict try: from cStringIO import StringIO @@ -107,8 +108,6 @@ log = initlog # The current logging function # Parsing functions # ================= -_header_parser = email.Parser.HeaderParser() - # Maximum input we will accept when REQUEST_METHOD is POST # 0 ==> unlimited input maxlen = 0 @@ -271,7 +270,7 @@ def parse_multipart(fp, pdict): data = None if terminator: # At start of next part. Read headers first. - headers = _header_parser.parse(fp) + headers = mimetools.Message(fp) clength = headers.getheader('content-length') if clength: try: @@ -408,9 +407,8 @@ class FieldStorage: disposition_options: dictionary of corresponding options - headers: a dictionary(-like) object (sometimes - email.Message.Message or a subclass thereof) containing *all* - headers + headers: a dictionary(-like) object (sometimes rfc822.Message or a + subclass thereof) containing *all* headers The class is subclassable, mostly for the purpose of overriding the make_file() method, which is called internally to come up with @@ -652,7 +650,7 @@ class FieldStorage: environ, keep_blank_values, strict_parsing) # Throw first part away while not part.done: - headers = _header_parser.parse(self.fp) + headers = rfc822.Message(self.fp) part = klass(self.fp, headers, ib, environ, keep_blank_values, strict_parsing) self.list.append(part)