Remove misleading Content-Length.
[django-ssify.git] / ssify / middleware.py
index 6b8b2ed..8e0f453 100644 (file)
@@ -118,13 +118,19 @@ class SsiMiddleware(object):
         request.ssi_vars_needed = {}
 
     def _process_rendered_response(self, request, response):
+        if 'Content-Length' in response:
+            del response['Content-Length']
         # Prepend the SSI variables.
         if hasattr(request, 'ssi_vars_needed'):
             vars_needed = request.ssi_vars_needed
-        else:
-            vars_needed = json_decode(response.get('X-Ssi-Vars-Needed', '{}'))
+        elif 'X-Ssi-Vars-Needed' in response:
+            vars_needed = json_decode(response['X-Ssi-Vars-Needed'])
             for k, v in vars_needed.items():
                 vars_needed[k] = SsiVariable(*v)
+            if not settings.DEBUG:
+                del response['X-Ssi-Vars-Needed']
+        else:
+            vars_needed = None
 
         if vars_needed:
             response.content = provide_vars(request, vars_needed) + \
@@ -139,6 +145,8 @@ class SsiMiddleware(object):
                     del response[header]
                 else:
                     response[header] = content
+            if not settings.DEBUG:
+                del response['X-ssi-restore']
         else:
             for response_modifier in getattr(request, 'ssi_patch_response', []):
                 response_modifier(response)
@@ -188,4 +196,6 @@ class LocaleMiddleware(locale.LocaleMiddleware):
             if (request.session.accessed and
                     (settings.USE_I18N or settings.USE_L10N)):
                 request.session.accessed = False
+                if not hasattr(request, 'ssi_patch_response'):
+                    request.ssi_patch_response = []
                 request.ssi_patch_response.append(ssi_vary_on_cookie)