Download Install Tutorial Docs FAQ Tools WikiLicense Team IRC Planet Involvement Shop Book

Changeset 1240

Show
Ignore:
Timestamp:
08/12/06 02:08:01
Author:
fumanchu
Message:

Fix for #408 (SessionFilter? doesn't check result of generateSessionID() against sessionStorage).

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/cherrypy/lib/sessions.py

    r1239 r1240  
    3838    clean_thread = None 
    3939     
    40     def __init__(self, id=None): 
     40    def __init__(self, id=None, **kwargs): 
    4141        self.locked = False 
    4242        self.loaded = False 
    4343        self._data = {} 
    4444         
    45         if id is None: 
    46             id = self.generate_id() 
     45        for k, v in kwargs.iteritems(): 
     46            setattr(self, k, v) 
     47         
    4748        self.id = id 
     49        while self.id is None: 
     50            self.id = self.generate_id() 
     51            # Assert that the generated id is not already stored. 
     52            if self._load() is not None: 
     53                self.id = None 
    4854     
    4955    def clean_cycle(self): 
     
    369375    # the requested session data. 
    370376    storage_class = storage_type.title() + 'Session' 
    371     cherrypy.serving.session = sess = globals()[storage_class](id) 
    372     sess.timeout = timeout 
    373     sess.clean_freq = clean_freq 
    374     for k, v in kwargs.iteritems(): 
    375         setattr(sess, k, v) 
     377    kwargs['timeout'] = timeout 
     378    kwargs['clean_freq'] = clean_freq 
     379    cherrypy.serving.session = sess = globals()[storage_class](id, **kwargs) 
    376380     
    377381    if locking == 'implicit': 

Hosted by WebFaction

Log in as guest/cpguest to create tickets