From ab0e10e60f9d481ac0aa782c69bd02de9b7fbf0d Mon Sep 17 00:00:00 2001 From: Aldo Cortesi Date: Tue, 3 Apr 2012 22:37:24 +1200 Subject: [PATCH] Serialize requestcount for ClientConnect objects. --- libmproxy/flow.py | 13 +++++++++---- test/test_flow.py | 3 ++- 2 files changed, 11 insertions(+), 5 deletions(-) diff --git a/libmproxy/flow.py b/libmproxy/flow.py index 76a8a1c76..6444fb7e7 100644 --- a/libmproxy/flow.py +++ b/libmproxy/flow.py @@ -324,7 +324,7 @@ class Request(HTTPMsg): Exposes the following attributes: - client_conn: ClientConnection object, or None if this is a replay. + client_conn: ClientConnect object, or None if this is a replay. headers: ODictCaseless object content: Content of the request, or None @@ -760,15 +760,20 @@ class ClientConnect(controller.Msg): return self._get_state() == other._get_state() def _load_state(self, state): - self.address = state + self.requestcount = state["requestcount"] def _get_state(self): - return list(self.address) if self.address else None + return dict( + address = list(self.address), + requestcount = self.requestcount, + ) @classmethod def _from_state(klass, state): if state: - return klass(state) + k = klass(state["address"]) + k._load_state(state) + return k else: return None diff --git a/test/test_flow.py b/test/test_flow.py index 60a4fc04d..a7ab7cc2c 100644 --- a/test/test_flow.py +++ b/test/test_flow.py @@ -923,8 +923,9 @@ class uClientConnect(libpry.AutoTree): c2 = flow.ClientConnect(("a", 25)) assert not c == c2 + c2.requestcount = 99 c._load_state(c2._get_state()) - assert c == c2 + assert c.requestcount == 99 c3 = c.copy() assert c3 == c