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.