Commits

Robert Brewer committed c025fc4

2.x branch fix for #677 (_cpwsgi requestLine: PATH_INFO SCRIPT_NAME).

Comments (0)

Files changed (1)

cherrypy/_cpwsgi.py

 """A WSGI application interface (see PEP 333)."""
 
+try:
+    GeneratorExit
+except NameError:
+    GeneratorExit = None
+
 import sys
 import cherrypy
 from cherrypy import _cputil, _cpwsgiserver, _cpwsgiserver3
 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
     
                 yield chunk
         except (KeyboardInterrupt, SystemExit), ex:
             raise ex
+        except GeneratorExit:
+            raise
         except:
             cherrypy.log(traceback=True)
             s, h, b = _cputil.bareError()
Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for ProjectModifiedEvent.java.
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.