Merge branch 'master' into python3
authorFredrik Tolf <fredrik@dolda2000.com>
Thu, 3 Apr 2014 04:03:53 +0000 (06:03 +0200)
committerFredrik Tolf <fredrik@dolda2000.com>
Thu, 3 Apr 2014 04:03:53 +0000 (06:03 +0200)
Conflicts:
wrw/session.py

1  2 
wrw/session.py

diff --combined wrw/session.py
@@@ -1,23 -1,14 +1,14 @@@
--import threading, time, pickle, random, os
 -import cookie, env
++import threading, time, pickle, random, os, binascii
 +from . import cookie, env
  
  __all__ = ["db", "get"]
  
- def hexencode(str):
-     ret = ""
-     for byte in str:
-         ret += "%02X" % (ord(byte),)
-     return ret
  def gennonce(length):
-     nonce = ""
-     for i in range(length):
-         nonce += chr(random.randint(0, 255))
-     return nonce
+     return os.urandom(length)
  
  class session(object):
      def __init__(self, lock, expire=86400 * 7):
-         self.id = hexencode(gennonce(16))
 -        self.id = gennonce(16).encode("hex")
++        self.id = binascii.b2a_hex(gennonce(16))
          self.dict = {}
          self.lock = lock
          self.ctime = self.atime = self.mtime = int(time.time())
@@@ -86,7 -77,7 +77,7 @@@ class db(object)
      def clean(self):
          now = int(time.time())
          with self.lock:
 -            clist = self.live.keys()
 +            clist = list(self.live.keys())
          for sessid in clist:
              with self.lock:
                  try:
          data = self.backdb[sessid]
          try:
              return pickle.loads(data)
 -        except Exception, e:
 +        except:
              raise KeyError()
  
      def freeze(self, sess):