diff -r 78123afb3ea4 Lib/http/client.py --- a/Lib/http/client.py Mon Nov 21 03:19:05 2011 +0100 +++ b/Lib/http/client.py Mon Nov 21 20:32:55 2011 +0530 @@ -215,26 +215,26 @@ # issues. def getallmatchingheaders(self, name): - """Find all header lines matching a given header name. + """Find all (header, value) tuples for a given header name. - Look through the list of headers and find all lines matching a given - header name (and their continuation lines). A list of the lines is - returned, without interpretation. If the header does not occur, an - empty list is returned. If the header occurs multiple times, all + Look through the list of (header, value) tuples and find all lines + matching a given header name (and their continuation lines). A list + of (header, value) tuples is returned. If the header does not occur, + an empty list is returned. If the header occurs multiple times, all occurrences are returned. Case is not important in the header name. """ - name = name.lower() + ':' + name = name.lower() n = len(name) lst = [] hit = 0 - for line in self.keys(): - if line[:n].lower() == name: + for header, value in self.items(): + if header[:n].lower() == name: hit = 1 - elif not line[:1].isspace(): + elif not header[:1].isspace(): hit = 0 if hit: - lst.append(line) + lst.append((header, value)) return lst def parse_headers(fp, _class=HTTPMessage): diff -r 78123afb3ea4 Lib/http/server.py --- a/Lib/http/server.py Mon Nov 21 03:19:05 2011 +0100 +++ b/Lib/http/server.py Mon Nov 21 20:32:55 2011 +0530 @@ -1071,11 +1071,11 @@ if referer: env['HTTP_REFERER'] = referer accept = [] - for line in self.headers.getallmatchingheaders('accept'): - if line[:1] in "\t\n\r ": - accept.append(line.strip()) + for header, value in self.headers.getallmatchingheaders('accept'): + if header[:1] in "\t\n\r ": + accept.append(header.strip()) else: - accept = accept + line[7:].split(',') + accept = accept + header[7:].split(',') env['HTTP_ACCEPT'] = ','.join(accept) ua = self.headers.get('user-agent') if ua: