web/httpcache.py
branchtls-sprint
changeset 1016 26387b836099
parent 762 a6f678fe7e44
child 1149 1e19b6ef53a1
equal deleted inserted replaced
1014:4792a1bb72a9 1016:26387b836099
     5 :copyright: 2001-2009 LOGILAB S.A. (Paris, FRANCE), all rights reserved.
     5 :copyright: 2001-2009 LOGILAB S.A. (Paris, FRANCE), all rights reserved.
     6 :contact: http://www.logilab.fr/ -- mailto:contact@logilab.fr
     6 :contact: http://www.logilab.fr/ -- mailto:contact@logilab.fr
     7 """
     7 """
     8 __docformat__ = "restructuredtext en"
     8 __docformat__ = "restructuredtext en"
     9 
     9 
    10 from mx.DateTime import DateTimeFromTicks, now, gmtime
    10 from datetime import datetime
    11 
    11 
    12 # time delta usable to convert localized time to GMT time
    12 # time delta usable to convert localized time to GMT time
    13 GMTOFFSET = - (now() - gmtime())
    13 GMTOFFSET = - (datetime.now() - datetime.utcnow())
    14 
    14 
    15 class NoHTTPCacheManager(object):
    15 class NoHTTPCacheManager(object):
    16     """default cache manager: set no-cache cache control policy"""
    16     """default cache manager: set no-cache cache control policy"""
    17     def __init__(self, view):
    17     def __init__(self, view):
    18         self.view = view
    18         self.view = view
   103     modified. Take care of possible related objects modifications.
   103     modified. Take care of possible related objects modifications.
   104 
   104 
   105     /!\ must return GMT time /!\
   105     /!\ must return GMT time /!\
   106     """
   106     """
   107     # XXX check view module's file modification time in dev mod ?
   107     # XXX check view module's file modification time in dev mod ?
   108     ctime = gmtime()
   108     ctime = datetime.utcnow()
   109     if self.cache_max_age:
   109     if self.cache_max_age:
   110         mtime = self.req.header_if_modified_since()
   110         mtime = self.req.header_if_modified_since()
   111         if mtime:
   111         if mtime:
   112             if (ctime - mtime).seconds > self.cache_max_age:
   112             tdelta = (ctime - mtime)
       
   113             if tdelta.days * 24*60*60 + tdelta.seconds > self.cache_max_age:
   113                 mtime = ctime
   114                 mtime = ctime
   114         else:
   115         else:
   115             mtime = ctime
   116             mtime = ctime
   116     else:
   117     else:
   117         mtime = ctime
   118         mtime = ctime