aboutsummaryrefslogtreecommitdiffstats
path: root/libmproxy/flow.py
diff options
context:
space:
mode:
Diffstat (limited to 'libmproxy/flow.py')
-rw-r--r--libmproxy/flow.py23
1 files changed, 19 insertions, 4 deletions
diff --git a/libmproxy/flow.py b/libmproxy/flow.py
index 387c49f0..14f06241 100644
--- a/libmproxy/flow.py
+++ b/libmproxy/flow.py
@@ -542,6 +542,18 @@ class FlowMaster(controller.Master):
controller.Master.tick(self, q)
+ def load_flows(self, fr):
+ """
+ Load flows from a FlowReader object.
+ """
+ for i in fr.stream():
+ if i.request:
+ self.handle_request(i.request)
+ if i.response:
+ self.handle_response(i.response)
+ if i.error:
+ self.handle_error(i.error)
+
def process_new_request(self, f):
if self.stickycookie_state:
self.stickycookie_state.handle_request(f)
@@ -560,6 +572,12 @@ class FlowMaster(controller.Master):
else:
f.request.ack()
+ def process_new_response(self, f):
+ if self.stickycookie_state:
+ self.stickycookie_state.handle_response(f)
+ if "response" in self.scripts:
+ self._runscript(f, self.scripts["response"])
+
def replay_request(self, f):
"""
Returns None if successful, or error message if not.
@@ -605,10 +623,7 @@ class FlowMaster(controller.Master):
self.client_playback.clear(f)
if not f:
r.ack()
- if self.stickycookie_state:
- self.stickycookie_state.handle_response(f)
- if "response" in self.scripts:
- self._runscript(f, self.scripts["response"])
+ self.process_new_response(f)
return f