From 3963a2191be816ce697d9f666b48c989e30d83ef Mon Sep 17 00:00:00 2001 From: Maximilian Hils Date: Wed, 2 Dec 2015 19:50:08 +0100 Subject: add import capability for old flows, fix #840 --- libmproxy/flow.py | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) (limited to 'libmproxy/flow.py') 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 -- cgit v1.2.3