diff options
| author | ianb <devnull@localhost> | 2005-07-13 04:44:56 +0000 |
|---|---|---|
| committer | ianb <devnull@localhost> | 2005-07-13 04:44:56 +0000 |
| commit | 133e0cd5509a03a38f5c57b37b5099c782ec358e (patch) | |
| tree | 8e511b7582fbbd0d83c0ca7d0042cb280a83b1d8 /paste | |
| parent | a6095e88d312390302c44a35225fdd423b79779e (diff) | |
| download | paste-133e0cd5509a03a38f5c57b37b5099c782ec358e.tar.gz | |
Added code to allow setting of cookies
Diffstat (limited to 'paste')
| -rw-r--r-- | paste/wareweb/servlet.py | 16 |
1 files changed, 14 insertions, 2 deletions
diff --git a/paste/wareweb/servlet.py b/paste/wareweb/servlet.py index 469da96..ace67b1 100644 --- a/paste/wareweb/servlet.py +++ b/paste/wareweb/servlet.py @@ -1,5 +1,6 @@ import re import urllib +import traceback from paste import httpexceptions import time import timeinterval @@ -7,6 +8,7 @@ import cgifields import event from paste.util import classinit from UserDict import UserDict +from Cookie import SimpleCookie __all__ = ['Servlet'] @@ -60,7 +62,7 @@ class Servlet(object): self.headers_out = { 'content-type': 'text/html; charset=UTF-8'} self.status = '200 OK' - self.cookies_out = {} + self._cookies_out = {} self.request_method = environ['REQUEST_METHOD'].upper() self.app_url = self.environ.get('%s.base_url' % self.app_name, '') self.app_static_url = self.config.get( @@ -73,6 +75,15 @@ class Servlet(object): # distinguish between '' and '/' self.path_parts = [] self.fields = cgifields.Fields(cgifields.parse_fields(environ)) + self.cookies = {} + if 'HTTP_COOKIE' in environ: + cookies = SimpleCookie() + try: + cookies.load(environ['HTTP_COOKIE']) + except: + traceback.print_exc(file=self._environ['wsgi.errors']) + for key in cookies.keys(): + self.cookies[key] = cookies[key].value self.run() headers = [] for name, value in self.headers_out.items(): @@ -81,7 +92,8 @@ class Servlet(object): headers.append((name, v)) else: headers.append((name, value)) - # @@: cookies + for cookie in self._cookies_out.values(): + headers.append(('Set-Cookie', cookie.header())) return self.status, headers, self._cached_output @event.wrap_func |
