diff options
author | Aldo Cortesi <aldo@nullcube.com> | 2015-01-02 13:26:22 +1300 |
---|---|---|
committer | Aldo Cortesi <aldo@nullcube.com> | 2015-01-02 13:26:22 +1300 |
commit | 1b5f5021dcb7cec45269a20fe9e8fdbea00600ed (patch) | |
tree | 86f898fa39fdb56097a11abacfca083899eb8c62 /libmproxy/flow.py | |
parent | 4d01e22f26dd301d2335a2dbb5890cdf38ca90e0 (diff) | |
download | mitmproxy-1b5f5021dcb7cec45269a20fe9e8fdbea00600ed.tar.gz mitmproxy-1b5f5021dcb7cec45269a20fe9e8fdbea00600ed.tar.bz2 mitmproxy-1b5f5021dcb7cec45269a20fe9e8fdbea00600ed.zip |
Consolidate reading flows from file, use in mitmweb.
Diffstat (limited to 'libmproxy/flow.py')
-rw-r--r-- | libmproxy/flow.py | 17 |
1 files changed, 16 insertions, 1 deletions
diff --git a/libmproxy/flow.py b/libmproxy/flow.py index 58b4604c..f3b138e2 100644 --- a/libmproxy/flow.py +++ b/libmproxy/flow.py @@ -6,6 +6,7 @@ from abc import abstractmethod, ABCMeta import hashlib import Cookie import cookielib +import os import re from netlib import odict, wsgi import netlib.http @@ -785,8 +786,20 @@ class FlowMaster(controller.Master): """ Load flows from a FlowReader object. """ + cnt = 0 for i in fr.stream(): + cnt += 1 self.load_flow(i) + return cnt + + def load_flows_file(self, path): + path = os.path.expanduser(path) + try: + f = file(path, "rb") + freader = FlowReader(f) + except IOError, v: + raise FlowReadError(v.strerror) + return self.load_flows(freader) def process_new_request(self, f): if self.stickycookie_state: @@ -961,7 +974,9 @@ class FlowReader: data = tnetstring.load(self.fo) if tuple(data["version"][:2]) != version.IVERSION[:2]: v = ".".join(str(i) for i in data["version"]) - raise FlowReadError("Incompatible serialized data version: %s" % v) + raise FlowReadError( + "Incompatible serialized data version: %s" % v + ) off = self.fo.tell() yield handle.protocols[data["type"]]["flow"].from_state(data) except ValueError, v: |