- try:
- if sessid is None:
- raise KeyError()
- elif sessid in self.live:
- sess = self.live[sessid]
- else:
- sess = self.thaw(sessid)
- self.live[sessid] = sess
- if sess.atime + sess.expire < now:
- raise KeyError()
- sess.atime = now
- except KeyError:
- sess = session()
- self.live[sess.id] = sess
- req.oncommit(self.addcookie)
- req.oncommit(self.ckfreeze)
- return sess
-
- def addcookie(self, req):
- sess = req.item(self.fetch)
- cookie.add(req, self.cookiename, sess.id, self.path)