[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