aboutsummaryrefslogtreecommitdiffstats
path: root/libmproxy/flow.py
diff options
context:
space:
mode:
authorAldo Cortesi <aldo@nullcube.com>2011-02-20 09:36:13 +1300
committerAldo Cortesi <aldo@nullcube.com>2011-02-20 09:36:13 +1300
commit9c5c3c2b1adfe9e8d79742a1bd5080b3fc1fdcde (patch)
tree413cf23bccd279d758df84b1938a8cf789a24600 /libmproxy/flow.py
parent58fc0041fa5e37a891314da4a777f8b886d20f06 (diff)
downloadmitmproxy-9c5c3c2b1adfe9e8d79742a1bd5080b3fc1fdcde.tar.gz
mitmproxy-9c5c3c2b1adfe9e8d79742a1bd5080b3fc1fdcde.tar.bz2
mitmproxy-9c5c3c2b1adfe9e8d79742a1bd5080b3fc1fdcde.zip
Implement state loading that doesn't change object identity.
We need this to let us load state from copied Flows returned from scripts.
Diffstat (limited to 'libmproxy/flow.py')
-rw-r--r--libmproxy/flow.py21
1 files changed, 18 insertions, 3 deletions
diff --git a/libmproxy/flow.py b/libmproxy/flow.py
index 03b8b309..3520cc93 100644
--- a/libmproxy/flow.py
+++ b/libmproxy/flow.py
@@ -99,11 +99,26 @@ class Flow:
def load_state(self, state):
self._backup = state["backup"]
- self.request = proxy.Request.from_state(state["request"])
+ if self.request:
+ self.request.load_state(state["request"])
+ else:
+ self.request = proxy.Request.from_state(state["request"])
+
if state["response"]:
- self.response = proxy.Response.from_state(self.request, state["response"])
+ if self.response:
+ self.response.load_state(state["response"])
+ else:
+ self.response = proxy.Response.from_state(self.request, state["response"])
+ else:
+ self.response = None
+
if state["error"]:
- self.error = proxy.Error.from_state(state["error"])
+ if self.error:
+ self.error.load_state(state["error"])
+ else:
+ self.error = proxy.Error.from_state(state["error"])
+ else:
+ self.error = None
@classmethod
def from_state(klass, state):