Workaround for Routes/urlgen bug.
authorElrond <elrond+mediagoblin.org@samba-tng.org>
Tue, 20 Dec 2011 23:06:38 +0000 (00:06 +0100)
committerElrond <elrond+mediagoblin.org@samba-tng.org>
Tue, 20 Dec 2011 23:06:38 +0000 (00:06 +0100)
This is relevant for fcgi:

Some servers (cherokee for example) put "HTTP":"off" in the
environ. And the following code in urlgen breaks on this:
    if environ.get('HTTPS') or environ.get('wsgi.url_scheme') == 'https' \
       or environ.get('HTTP_X_FORWARDED_PROTO') == 'https':
        hostinfo['protocol'] = 'https'

workaround is to remove HTTPS:off from the environ.

mediagoblin/app.py

index 04eb2acc8fa2de3efb1f0c85adea3f02710aa1dd..49dc8d97af374d23217671dbf43562afbe12ac9f 100644 (file)
@@ -122,6 +122,10 @@ class MediaGoblinApp(object):
         # The other option would be:
         # request.full_path = environ["SCRIPT_URL"]
 
+        # Fix up environ for urlgen
+        if environ.get('HTTPS', '').lower() == 'off':
+            environ.pop('HTTPS')
+
         ## Attach utilities to the request object
         request.matchdict = route_match
         request.urlgen = routes.URLGenerator(self.routing, environ)