diff options
author | Robert Brewer <fumanchu@aminus.org> | 2007-06-17 20:24:59 +0000 |
---|---|---|
committer | Robert Brewer <fumanchu@aminus.org> | 2007-06-17 20:24:59 +0000 |
commit | 8f88043e2e5643f43f16a345430b372f340632c6 (patch) | |
tree | bb6f6929e6b181ee54cbcb6d7271c890468adb6c | |
parent | 2a9588b1abc36582a817ece9d55330cc31d20b4f (diff) | |
download | cherrypy-8f88043e2e5643f43f16a345430b372f340632c6.tar.gz |
2.x branch fix for #677 (_cpwsgi requestLine: PATH_INFO SCRIPT_NAME).
-rw-r--r-- | cherrypy/_cpwsgi.py | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/cherrypy/_cpwsgi.py b/cherrypy/_cpwsgi.py index 8dab48e3..296c1b5c 100644 --- a/cherrypy/_cpwsgi.py +++ b/cherrypy/_cpwsgi.py @@ -1,5 +1,10 @@ """A WSGI application interface (see PEP 333).""" +try: + GeneratorExit +except NameError: + GeneratorExit = None + import sys import cherrypy from cherrypy import _cputil, _cpwsgiserver, _cpwsgiserver3 @@ -9,7 +14,8 @@ from cherrypy.lib import httptools def requestLine(environ): """Rebuild first line of the request (e.g. "GET /path HTTP/1.0").""" - resource = environ.get('SCRIPT_NAME', '') + environ.get('PATH_INFO', '') + resource = httptools.urljoin(environ.get('SCRIPT_NAME', ''), + environ.get('PATH_INFO', '')) if not (resource == "*" or resource.startswith("/")): resource = "/" + resource @@ -67,6 +73,8 @@ class ResponseIter(object): yield chunk except (KeyboardInterrupt, SystemExit), ex: raise ex + except GeneratorExit: + raise except: cherrypy.log(traceback=True) s, h, b = _cputil.bareError() |