diff options
| -rw-r--r-- | libmproxy/dump.py | 4 | ||||
| -rw-r--r-- | libmproxy/flow.py | 3 | ||||
| -rw-r--r-- | libmproxy/proxy.py | 3 | 
3 files changed, 8 insertions, 2 deletions
diff --git a/libmproxy/dump.py b/libmproxy/dump.py index 7eff4992..039fb9a7 100644 --- a/libmproxy/dump.py +++ b/libmproxy/dump.py @@ -20,6 +20,8 @@ class DumpMaster(flow.FlowMaster):      def handle_response(self, msg):          f = flow.FlowMaster.handle_response(self, msg) +        if not f: +            return          if 0 < self.verbosity < 3:              print >> self.outfile, ">>",              print >> self.outfile, msg.request.short() @@ -41,6 +43,8 @@ class DumpMaster(flow.FlowMaster):                  print >> self.outfile, "\t", i              print >> self.outfile, "<<"          msg.ack() +        self.state.delete_flow(f) +        print [i.get_state() for i in self.state.flow_list]  # begin nocover diff --git a/libmproxy/flow.py b/libmproxy/flow.py index 5aba5f76..63da0230 100644 --- a/libmproxy/flow.py +++ b/libmproxy/flow.py @@ -183,7 +183,8 @@ class State:          """          f = self.flow_map.get(req.client_conn)          if not f: -            return False +            f = Flow(req.client_conn) +            self.add_browserconnect(f)          f.request = req          return f diff --git a/libmproxy/proxy.py b/libmproxy/proxy.py index ff0d9a96..54ff2ec3 100644 --- a/libmproxy/proxy.py +++ b/libmproxy/proxy.py @@ -454,8 +454,8 @@ class ProxyHandler(SocketServer.StreamRequestHandler):      def handle(self):          cc = ClientConnection(self.client_address) +        cc.send(self.mqueue)          while not cc.close: -            cc.send(self.mqueue)              self.handle_request(cc)              cc = cc.copy()          self.finish() @@ -471,6 +471,7 @@ class ProxyHandler(SocketServer.StreamRequestHandler):              if request is None:                  cc.close = True                  return +              if request.is_response():                  response = request                  request = False  | 
