Dolda2000 GitWeb
/
wrw.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Fixed python3 iterator protocol.
[wrw.git]
/
wrw
/
session.py
diff --git
a/wrw/session.py
b/wrw/session.py
index
2abe650
..
71ed2d5
100644
(file)
--- a/
wrw/session.py
+++ b/
wrw/session.py
@@
-1,5
+1,5
@@
import threading, time, pickle, random, os
import threading, time, pickle, random, os
-import cookie
+
from .
import cookie
__all__ = ["db", "get"]
__all__ = ["db", "get"]
@@
-11,7
+11,7
@@
def hexencode(str):
def gennonce(length):
nonce = ""
def gennonce(length):
nonce = ""
- for i in
x
range(length):
+ for i in range(length):
nonce += chr(random.randint(0, 255))
return nonce
nonce += chr(random.randint(0, 255))
return nonce
@@
-83,7
+83,7
@@
class db(object):
now = int(time.time())
with self.lock:
dlist = []
now = int(time.time())
with self.lock:
dlist = []
- for sess in self.live.
iter
values():
+ for sess in self.live.values():
if sess.atime + self.freezetime < now:
try:
if sess.dirty():
if sess.atime + self.freezetime < now:
try:
if sess.dirty():
@@
-129,14
+129,15
@@
class db(object):
sess.atime = now
except KeyError:
sess = session()
sess.atime = now
except KeyError:
sess = session()
- self.live[sess.id] = sess
new = True
def ckfreeze(req):
if sess.dirty():
new = True
def ckfreeze(req):
if sess.dirty():
+ if new:
+ cookie.add(req, self.cookiename, sess.id, self.path)
+ with self.lock:
+ self.live[sess.id] = sess
try:
try:
- if new:
- cookie.add(req, self.cookiename, sess.id, self.path)
self.freeze(sess)
except:
pass
self.freeze(sess)
except:
pass
@@
-154,14
+155,14
@@
class db(object):
class backeddb(db):
def __init__(self, backdb, *args, **kw):
class backeddb(db):
def __init__(self, backdb, *args, **kw):
- super(
backeddb, self
).__init__(*args, **kw)
+ super().__init__(*args, **kw)
self.backdb = backdb
def thaw(self, sessid):
data = self.backdb[sessid]
try:
return pickle.loads(data)
self.backdb = backdb
def thaw(self, sessid):
data = self.backdb[sessid]
try:
return pickle.loads(data)
- except
Exception, e
:
+ except:
raise KeyError()
def freeze(self, sess):
raise KeyError()
def freeze(self, sess):