aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--mitmproxy/flow/modules.py17
-rw-r--r--netlib/http/cookies.py24
2 files changed, 24 insertions, 17 deletions
diff --git a/mitmproxy/flow/modules.py b/mitmproxy/flow/modules.py
index 46da5b64..ab41da8d 100644
--- a/mitmproxy/flow/modules.py
+++ b/mitmproxy/flow/modules.py
@@ -1,10 +1,8 @@
from __future__ import absolute_import, print_function, division
import collections
-import email.utils
import hashlib
import re
-import time
from six.moves import http_cookiejar
from six.moves import urllib
@@ -325,20 +323,7 @@ class StickyCookieState:
dom_port_path = self.ckey(attrs, f)
if self.domain_match(f.request.host, dom_port_path[0]):
-
- # See if 'expires' time is in the past
- expired = False
- if 'expires' in attrs:
- e = email.utils.parsedate_tz(attrs["expires"])
- if e:
- exp_ts = email.utils.mktime_tz(e)
- now_ts = time.time()
- expired = exp_ts < now_ts
-
- # or if Max-Age is 0
- expired = expired or (int(attrs.get('Max-Age', 1)) == 0)
-
- if expired:
+ if cookies.is_expired(attrs):
# Remove the cookie from jar
self.jar[dom_port_path].pop(name, None)
diff --git a/netlib/http/cookies.py b/netlib/http/cookies.py
index 768a85df..90789365 100644
--- a/netlib/http/cookies.py
+++ b/netlib/http/cookies.py
@@ -1,7 +1,8 @@
import collections
+import email.utils
import re
+import time
-import email.utils
from netlib import multidict
"""
@@ -260,3 +261,24 @@ def refresh_set_cookie_header(c, delta):
if not ret:
raise ValueError("Invalid Cookie")
return ret
+
+def is_expired(cookie_attrs):
+ """
+ Determines whether a cookie has expired.
+
+ Returns: boolean
+ """
+ expired = False
+
+ # See if 'expires' time is in the past
+ if 'expires' in cookie_attrs:
+ e = email.utils.parsedate_tz(cookie_attrs["expires"])
+ if e:
+ exp_ts = email.utils.mktime_tz(e)
+ now_ts = time.time()
+ expired = exp_ts < now_ts
+
+ # or if Max-Age is 0
+ expired = expired or (int(cookie_attrs.get('Max-Age', 1)) == 0)
+
+ return expired