From fb573eefb8883efba525517fe741ec33cb351a0a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Laura=20Kl=C3=BCnder?= Date: Tue, 21 Nov 2017 15:16:30 +0100 Subject: [PATCH] only calculate access cache key if needed --- src/c3nav/tileserver/wsgi.py | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) diff --git a/src/c3nav/tileserver/wsgi.py b/src/c3nav/tileserver/wsgi.py index 9579437b..25f9e68c 100644 --- a/src/c3nav/tileserver/wsgi.py +++ b/src/c3nav/tileserver/wsgi.py @@ -154,21 +154,22 @@ class TileServer: if level_data is None: return self.not_found(start_response, b'invalid level.') + # build cache keys + last_update = level_data.history.last_update(minx, miny, maxx, maxy) + base_cache_key = build_base_cache_key(last_update) + # decode access permissions + access_permissions = set() + access_cache_key = '0' + cookie = env.get('HTTP_COOKIE', None) if cookie: cookie = self.cookie_regex.search(cookie) if cookie: cookie = cookie.group(2) - access_permissions = (parse_tile_access_cookie(cookie, self.tile_secret) & - set(level_data.restrictions[minx:miny, maxx:maxy])) - else: - access_permissions = set() - - # build cache keys - last_update = level_data.history.last_update(minx, miny, maxx, maxy) - base_cache_key = build_base_cache_key(last_update) - access_cache_key = build_access_cache_key(access_permissions) + access_permissions = (parse_tile_access_cookie(cookie, self.tile_secret) & + set(level_data.restrictions[minx:miny, maxx:maxy])) + access_cache_key = build_access_cache_key(access_permissions) # check browser cache if_none_match = env.get('HTTP_IF_NONE_MATCH')