aboutsummaryrefslogtreecommitdiffstats
path: root/netlib/http/cookies.py
diff options
context:
space:
mode:
authorShadab Zafar <dufferzafar0@gmail.com>2016-09-27 21:04:52 +0530
committerShadab Zafar <dufferzafar0@gmail.com>2016-09-27 21:28:51 +0530
commit6e6ed35e3ec509ca443033c953d95a11ce1338c2 (patch)
treed577b94fd12bbf7bcb8f36c66eed4a226bbe6fe6 /netlib/http/cookies.py
parenta104d65851763256a777cec9ea37236dc9c94a06 (diff)
downloadmitmproxy-6e6ed35e3ec509ca443033c953d95a11ce1338c2.tar.gz
mitmproxy-6e6ed35e3ec509ca443033c953d95a11ce1338c2.tar.bz2
mitmproxy-6e6ed35e3ec509ca443033c953d95a11ce1338c2.zip
Modify format_set_cookie_header to take cookie list
and return a comma separated string of cookies
Diffstat (limited to 'netlib/http/cookies.py')
-rw-r--r--netlib/http/cookies.py37
1 files changed, 23 insertions, 14 deletions
diff --git a/netlib/http/cookies.py b/netlib/http/cookies.py
index 02f82065..2c0fcafd 100644
--- a/netlib/http/cookies.py
+++ b/netlib/http/cookies.py
@@ -188,12 +188,12 @@ def _has_special(s):
return False
-def _format_pairs(lst, specials=(), sep="; "):
+def _format_pairs(pairs, specials=(), sep="; "):
"""
specials: A lower-cased list of keys that will not be quoted.
"""
vals = []
- for k, v in lst:
+ for k, v in pairs:
if v is None:
vals.append(k)
else:
@@ -256,24 +256,33 @@ def parse_set_cookie_header(line):
def parse_set_cookie_headers(headers):
- ret = []
+ rv = []
for header in headers:
cookies = parse_set_cookie_header(header)
if cookies:
for name, value, attrs in cookies:
- ret.append((name, SetCookie(value, attrs)))
- return ret
+ rv.append((name, SetCookie(value, attrs)))
+ return rv
-def format_set_cookie_header(name, value, attrs):
+def format_set_cookie_header(set_cookies):
"""
Formats a Set-Cookie header value.
"""
- pairs = [(name, value)]
- pairs.extend(
- attrs.fields if hasattr(attrs, "fields") else attrs
- )
- return _format_set_cookie_pairs(pairs)
+
+ rv = []
+
+ for set_cookie in set_cookies:
+ name, value, attrs = set_cookie
+
+ pairs = [(name, value)]
+ pairs.extend(
+ attrs.fields if hasattr(attrs, "fields") else attrs
+ )
+
+ rv.append(_format_set_cookie_pairs(pairs))
+
+ return ", ".join(rv)
def refresh_set_cookie_header(c, delta):
@@ -303,10 +312,10 @@ def refresh_set_cookie_header(c, delta):
# For now, we just ignore this.
attrs = attrs.with_delitem("expires")
- ret = format_set_cookie_header(name, value, attrs)
- if not ret:
+ rv = format_set_cookie_header([(name, value, attrs)])
+ if not rv:
raise ValueError("Invalid Cookie")
- return ret
+ return rv
def get_expiration_ts(cookie_attrs):