--- Quixote-0.7a3/server/twisted_http.py 2003-12-03 17:30:29.000000000 -0600 +++ quixote/server/twisted_http.py 2004-03-14 14:52:35.000000000 -0600 @@ -19,6 +19,7 @@ from twisted.protocols import http from twisted.web import server +import urllib import quixote quixote.enable_ptl() from quixote import errors @@ -49,17 +50,7 @@ Hope you didn't override it... """ pub = self.publisher - try: - pub.parse_request(qxrequest) - output = pub.process_request(qxrequest, env) - # needed for session management! - pub.finish_successful_request(qxrequest) - except errors.PublishError, exc: - # Exit the publishing loop and return a result right away. - output = pub.finish_interrupted_request(qxrequest, exc) - except: - # other exception, generate error messages to logs, etc. - output = pub.finish_failed_request(qxrequest) + output = pub.process_request(qxrequest, env) # don't write out the output, just set the response body # the calling method will do the rest. @@ -76,6 +67,13 @@ """ Borrowed heavily from twisted.web.twcgi """ + + # Twisted doesn't decode the path for us, + # so let's do it here. This is also + # what medusa_http.py does, right or wrong. + if '%' in self.path: + self.path = urllib.unquote(self.path) + serverName = self.getRequestHostname().split(':')[0] env = {"SERVER_SOFTWARE": server.version, "SERVER_NAME": serverName, @@ -86,6 +84,7 @@ "SCRIPT_NAME": '', "SCRIPT_FILENAME": '', "REQUEST_URI": self.uri, + "HTTPS": self.isSecure() and 'on' or 'off', } client = self.getClient()