diff options
Diffstat (limited to 'Lib/cgi.py')
-rwxr-xr-x | Lib/cgi.py | 16 |
1 files changed, 9 insertions, 7 deletions
@@ -38,8 +38,7 @@ from operator import attrgetter import sys import os import urllib -import mimetools -import rfc822 +import email.Parser import UserDict try: from cStringIO import StringIO @@ -108,6 +107,8 @@ 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 @@ -237,7 +238,7 @@ def parse_multipart(fp, pdict): Arguments: fp : input file - pdict: dictionary containing other parameters of conten-type header + pdict: dictionary containing other parameters of content-type header Returns a dictionary just like parse_qs(): keys are the field names, each value is a list of values for that field. This is easy to use but not @@ -270,7 +271,7 @@ def parse_multipart(fp, pdict): data = None if terminator: # At start of next part. Read headers first. - headers = mimetools.Message(fp) + headers = _header_parser.parse(fp) clength = headers.getheader('content-length') if clength: try: @@ -407,8 +408,9 @@ class FieldStorage: disposition_options: dictionary of corresponding options - headers: a dictionary(-like) object (sometimes rfc822.Message or a - subclass thereof) containing *all* headers + headers: a dictionary(-like) object (sometimes + email.Message.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 @@ -650,7 +652,7 @@ class FieldStorage: environ, keep_blank_values, strict_parsing) # Throw first part away while not part.done: - headers = rfc822.Message(self.fp) + headers = _header_parser.parse(self.fp) part = klass(self.fp, headers, ib, environ, keep_blank_values, strict_parsing) self.list.append(part) |