[z3-checkins] r38210 - z3/deliverance/branches/cache_aware/deliverance

ltucker at codespeak.net ltucker at codespeak.net
Thu Feb 8 22:34:21 CET 2007


Author: ltucker
Date: Thu Feb  8 22:34:18 2007
New Revision: 38210

Modified:
   z3/deliverance/branches/cache_aware/deliverance/cache_utils.py
Log:
only include etag if all content includes etag

Modified: z3/deliverance/branches/cache_aware/deliverance/cache_utils.py
==============================================================================
--- z3/deliverance/branches/cache_aware/deliverance/cache_utils.py	(original)
+++ z3/deliverance/branches/cache_aware/deliverance/cache_utils.py	Thu Feb  8 22:34:18 2007
@@ -1,5 +1,5 @@
 import re
-from paste.response import header_value, replace_header
+from paste.response import header_value, replace_header, remove_header
 from paste.httpheaders import EXPIRES, LAST_MODIFIED
 from time import time as now
 from sets import Set
@@ -42,6 +42,8 @@
     etag = merge_etags_from_headers(headers_map)
     if etag is not None: 
         replace_header(new_headers, 'etag', etag )
+    else: 
+        remove_header(new_headers, 'etag')
 
     vary = merge_vary_from_headers(headers_map)
     if vary is not None: 
@@ -146,13 +148,19 @@
     """
     accepts a map from uris to wsgi-style header lists 
     returns the value for the etag merged from all 
-    etag headers present in the header lists 
+    etag headers present in the header lists. 
+    
+    if any entry in the map does not have an 
+    etag, the resulting etag is None. 
     """
     etag_map = {}
+
     for uri, headers in headers_map.items(): 
         etag = header_value(headers,'etag')
         if etag is not None and len(etag) != 0: 
             etag_map[uri] = etag
+        else: 
+            return None
     return merge_etags(etag_map)
     
 


More information about the z3-checkins mailing list