Changeset 1192
- Timestamp:
- 07/09/06 22:04:14
- Files:
-
- trunk/cherrypy/_cpwsgiserver.py (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
trunk/cherrypy/_cpwsgiserver.py
r1182 r1192 4 4 import threading 5 5 import Queue 6 try: 7 from email import FeedParser 8 except ImportError: 9 # Python 2.3 didn't have a FeedParser module. However, we can't 10 # just use Python 2.4's Parser.parse, because it calls read(8192) 11 # instead of readline(). 12 FeedParser = None 13 from email import Parser 6 import mimetools # todo: use email 14 7 import rfc822 15 8 import sys … … 101 94 self.environ["REMOTE_ADDR"] = self.addr[0] 102 95 self.environ["REMOTE_PORT"] = str(self.addr[1]) 103 104 96 # then all the http headers 105 if FeedParser: 106 feedparser = FeedParser.FeedParser() 107 feedparser._set_headersonly() 108 while True: 109 data = self.rfile.readline() 110 if not data or data in ('\n', '\r\n'): 111 break 112 feedparser.feed(data) 113 headers = feedparser.close() 114 else: 115 headers = Parser.Parser().parse(self.rfile, headersonly=True) 116 self.environ["CONTENT_TYPE"] = headers.get("Content-type", "") 117 cl = headers.get("Content-length") 97 headers = mimetools.Message(self.rfile) 98 self.environ["CONTENT_TYPE"] = headers.getheader("Content-type", "") 99 cl = headers.getheader("Content-length") 118 100 if method in ("POST", "PUT") and cl is None: 119 101 # No Content-Length header supplied. This will hang

