aboutsummaryrefslogtreecommitdiffstats
path: root/mitmproxy/stateobject.py
diff options
context:
space:
mode:
authorThomas Kriechbaumer <thomas@kriechbaumer.name>2017-03-07 18:32:56 +0100
committerThomas Kriechbaumer <thomas@kriechbaumer.name>2017-03-09 19:08:59 +0100
commitb1dd86d7ae7d6692eb3004a5e4b8bf6504af2635 (patch)
tree390188404fb81c409ab2ab17eb99cd2726655835 /mitmproxy/stateobject.py
parent98b589385519eb6b27f8be89bb1ba45940d45245 (diff)
downloadmitmproxy-b1dd86d7ae7d6692eb3004a5e4b8bf6504af2635.tar.gz
mitmproxy-b1dd86d7ae7d6692eb3004a5e4b8bf6504af2635.tar.bz2
mitmproxy-b1dd86d7ae7d6692eb3004a5e4b8bf6504af2635.zip
make websocket flows serializable
fixes #2113
Diffstat (limited to 'mitmproxy/stateobject.py')
-rw-r--r--mitmproxy/stateobject.py8
1 files changed, 8 insertions, 0 deletions
diff --git a/mitmproxy/stateobject.py b/mitmproxy/stateobject.py
index 1ab744a5..14159001 100644
--- a/mitmproxy/stateobject.py
+++ b/mitmproxy/stateobject.py
@@ -39,6 +39,14 @@ class StateObject(serializable.Serializable):
state[attr] = val.get_state()
elif _is_list(cls):
state[attr] = [x.get_state() for x in val]
+ elif isinstance(val, dict):
+ s = {}
+ for k, v in val.items():
+ if hasattr(v, "get_state"):
+ s[k] = v.get_state()
+ else:
+ s[k] = v
+ state[attr] = s
else:
state[attr] = val
return state