aboutsummaryrefslogtreecommitdiffstats
path: root/libmproxy/flow.py
diff options
context:
space:
mode:
authorMaximilian Hils <git@maximilianhils.com>2015-12-02 19:50:08 +0100
committerMaximilian Hils <git@maximilianhils.com>2015-12-02 19:50:08 +0100
commit3963a2191be816ce697d9f666b48c989e30d83ef (patch)
treedc9a9666ac6441bc5b182fb1d1e34ff1c3d20050 /libmproxy/flow.py
parentb5d5e56fdb32717ab8f4c99c4f31c56df46afa91 (diff)
downloadmitmproxy-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.py13
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