diff options
author | Maximilian Hils <git@maximilianhils.com> | 2015-12-02 19:50:08 +0100 |
---|---|---|
committer | Maximilian Hils <git@maximilianhils.com> | 2015-12-02 19:50:08 +0100 |
commit | 3963a2191be816ce697d9f666b48c989e30d83ef (patch) | |
tree | dc9a9666ac6441bc5b182fb1d1e34ff1c3d20050 /libmproxy/flow.py | |
parent | b5d5e56fdb32717ab8f4c99c4f31c56df46afa91 (diff) | |
download | mitmproxy-3963a2191be816ce697d9f666b48c989e30d83ef.tar.gz mitmproxy-3963a2191be816ce697d9f666b48c989e30d83ef.tar.bz2 mitmproxy-3963a2191be816ce697d9f666b48c989e30d83ef.zip |
add import capability for old flows, fix #840
Diffstat (limited to 'libmproxy/flow.py')
-rw-r--r-- | libmproxy/flow.py | 13 |
1 files changed, 6 insertions, 7 deletions
diff --git a/libmproxy/flow.py b/libmproxy/flow.py index 93bb6ab0..a2b069ed 100644 --- a/libmproxy/flow.py +++ b/libmproxy/flow.py @@ -13,7 +13,7 @@ import urlparse from netlib import wsgi from netlib.exceptions import HttpException from netlib.http import CONTENT_MISSING, Headers, http1 -from . import controller, tnetstring, filt, script, version +from . import controller, tnetstring, filt, script, version, flow_format_compat from .onboarding import app from .proxy.config import HostMatcher from .protocol.http_replay import RequestReplayThread @@ -1112,14 +1112,13 @@ class FlowReader: try: while True: 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 - ) + try: + data = flow_format_compat.migrate_flow(data) + except ValueError as e: + raise FlowReadError(str(e)) off = self.fo.tell() yield HTTPFlow.from_state(data) - except ValueError as v: + except ValueError: # Error is due to EOF if self.fo.tell() == off and self.fo.read() == '': return |