diff options
author | Aldo Cortesi <aldo@nullcube.com> | 2011-02-20 09:36:13 +1300 |
---|---|---|
committer | Aldo Cortesi <aldo@nullcube.com> | 2011-02-20 09:36:13 +1300 |
commit | 9c5c3c2b1adfe9e8d79742a1bd5080b3fc1fdcde (patch) | |
tree | 413cf23bccd279d758df84b1938a8cf789a24600 /libmproxy/flow.py | |
parent | 58fc0041fa5e37a891314da4a777f8b886d20f06 (diff) | |
download | mitmproxy-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.py | 21 |
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): |