- import http.cookies
-import Cookie, time
-import proto
++import http.cookies, time
++from . import proto
__all__ = ["cookies", "get", "add"]
class cookiedict(object):
def __init__(self, req):
try:
- self.bk = Cookie.SimpleCookie(req.ihead.get("Cookie"))
- except Cookie.CookieError:
- self.bk = Cookie.SimpleCookie()
- self.codec = Cookie.SimpleCookie()
+ self.bk = http.cookies.SimpleCookie(req.ihead.get("Cookie"))
+ except http.cookies.CookieError:
+ self.bk = http.cookies.SimpleCookie()
+ self.codec = http.cookies.SimpleCookie()
req.oncommit(addcookies)
def __getitem__(self, name):
def add(self, name, value, **kw):
self.codec[name] = value
- for key, value in kw.iteritems():
+ for key, value in kw.items():
self.codec[name][key] = value
def __setitem__(self, name, value):
def add(req, name, value, **kw):
cookies(req).add(name, value, **kw)
+
+ cdate = proto.httpdate
del self.dict[key.lower()]
def __iter__(self):
- return iter((list[0] for list in self.dict.itervalues()))
+ return iter((list[0] for list in self.dict.values()))
def get(self, key, default = ""):
if key.lower() in self.dict:
self.query = env["QUERY_STRING"]
self.remoteaddr = env["REMOTE_ADDR"]
self.serverport = env["SERVER_PORT"]
+ self.servername = env["SERVER_NAME"]
self.https = "HTTPS" in env
self.ihead = headdict()
self.ohead = headdict()
import threading, time, pickle, random, os
-import cookie, env
+from . import cookie, env
__all__ = ["db", "get"]
def gennonce(length):
nonce = ""
- for i in xrange(length):
+ for i in range(length):
nonce += chr(random.randint(0, 255))
return nonce
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:
return session(threading.RLock())
def mkcookie(self, req, sess):
- cookie.add(req, self.cookiename, sess.id, path=self.path)
+ cookie.add(req, self.cookiename, sess.id,
+ path=self.path,
+ expires=cookie.cdate(time.time() + sess.expire))
def fetch(self, req):
now = int(time.time())
data = self.backdb[sessid]
try:
return pickle.loads(data)
- except Exception, e:
+ except:
raise KeyError()
def freeze(self, sess):