On Fri, Oct 05, 2001 at 12:34:03PM -0400, Greg Ward wrote: >I agree. HTTPRequest is closer to HTTP and the server, so should >workaround server bugs like this. OK; a proposed patch is below (I'll finish writing the comment before checking it in). Mikhail, can you please give it a try with this patch and see if your problem is fixed? Greg, Neil: note that this code ends up mutating the 'environ' mapping passed into the constructor; is that OK or should I .copy() the dictionary first? (IMHO I can live with this tiny bit of evil.) --amk Index: http_request.py =================================================================== RCS file: /projects/cvsroot/mems/quixote/http_request.py,v retrieving revision 1.29 diff -C2 -r1.29 http_request.py *** http_request.py 2001/09/13 20:33:41 1.29 --- http_request.py 2001/10/05 16:46:44 *************** *** 186,190 **** self.cookies = {} ! def process_inputs (self): """Process request inputs. --- 186,199 ---- self.cookies = {} ! # IIS reports the same information in both PATH_INFO ! # and SCRIPT_NAME; ! web_server = environ.get('SERVER_SOFTWARE', 'unknown') ! if (web_server.find('Microsoft-IIS') != -1): ! script = environ['SCRIPT_NAME'] ! path = environ['PATH_INFO'] ! if path.startswith(script): ! path = path[len(script):] ! self.environ['PATH_INFO'] = path ! def process_inputs (self): """Process request inputs.