summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRobert Brewer <fumanchu@aminus.org>2007-06-17 20:24:59 +0000
committerRobert Brewer <fumanchu@aminus.org>2007-06-17 20:24:59 +0000
commit8f88043e2e5643f43f16a345430b372f340632c6 (patch)
treebb6f6929e6b181ee54cbcb6d7271c890468adb6c
parent2a9588b1abc36582a817ece9d55330cc31d20b4f (diff)
downloadcherrypy-8f88043e2e5643f43f16a345430b372f340632c6.tar.gz
2.x branch fix for #677 (_cpwsgi requestLine: PATH_INFO SCRIPT_NAME).
-rw-r--r--cherrypy/_cpwsgi.py10
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()