X-Git-Url: http://dolda2000.com/gitweb/?a=blobdiff_plain;f=wrw%2Fcookie.py;h=4f5071a45552e92cd621184d64da1b43d06e692f;hb=7be9e8bb560cd4e969992759bbcb523b40e544af;hp=2c6f982a1248bef705aaf137f295de5e753aa914;hpb=b409a33843abb3221edd27016558c39cf33a6510;p=wrw.git diff --git a/wrw/cookie.py b/wrw/cookie.py index 2c6f982..4f5071a 100644 --- a/wrw/cookie.py +++ b/wrw/cookie.py @@ -1,4 +1,5 @@ -import Cookie +import Cookie, time +import proto __all__ = ["cookies", "get", "add"] @@ -9,7 +10,10 @@ def addcookies(req): class cookiedict(object): def __init__(self, req): - self.bk = Cookie.SimpleCookie(req.ihead.get("Cookie")) + try: + self.bk = Cookie.SimpleCookie(req.ihead.get("Cookie")) + except Cookie.CookieError: + self.bk = Cookie.SimpleCookie() self.codec = Cookie.SimpleCookie() req.oncommit(addcookies) @@ -24,9 +28,10 @@ class cookiedict(object): return default return self.bk[name].value - def add(self, name, value, path = None): + def add(self, name, value, **kw): self.codec[name] = value - if path is not None: self.codec[name]["path"] = path + for key, value in kw.iteritems(): + self.codec[name][key] = value def __setitem__(self, name, value): self.add(name, value) @@ -37,5 +42,7 @@ def cookies(req): def get(req, name, default = None): return cookies(req).get(name, default) -def add(req, name, value, path = None): - cookies(req).add(name, value, path) +def add(req, name, value, **kw): + cookies(req).add(name, value, **kw) + +cdate = proto.httpdate