diff options
Diffstat (limited to 'libmproxy')
| -rw-r--r-- | libmproxy/dump.py | 64 | 
1 files changed, 37 insertions, 27 deletions
diff --git a/libmproxy/dump.py b/libmproxy/dump.py index 039fb9a7..76bf3ae2 100644 --- a/libmproxy/dump.py +++ b/libmproxy/dump.py @@ -1,10 +1,21 @@  import sys  import flow +class Options(object): +    __slots__ = [ +        "verbosity", +        "wfile", +    ] +    def __init__(self, **kwargs): +        for k, v in kwargs.items(): +            setattr(self, k, v) + +  class DumpMaster(flow.FlowMaster): -    def __init__(self, server, verbosity, outfile=sys.stderr): -        self.verbosity, self.outfile = verbosity, outfile +    def __init__(self, server, options, outfile=sys.stdout):          flow.FlowMaster.__init__(self, server, flow.State()) +        self.outfile = outfile +        self.o = options      def handle_clientconnection(self, r):          flow.FlowMaster.handle_clientconnection(self, r) @@ -20,31 +31,30 @@ 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() -        if self.verbosity == 1: -            print >> self.outfile, "<<", -            print >> self.outfile, msg.short() -        elif self.verbosity == 2: -            print >> self.outfile, "<<" -            for i in msg.assemble().splitlines(): -                print >> self.outfile, "\t", i -            print >> self.outfile, "<<" -        elif self.verbosity == 3: -            print >> self.outfile, ">>" -            for i in msg.request.assemble().splitlines(): -                print >> self.outfile, "\t", i -            print >> self.outfile, ">>" -            print >> self.outfile, "<<" -            for i in msg.assemble().splitlines(): -                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] +        if f: +            if 0 < self.o.verbosity < 3: +                print >> self.outfile, ">>", +                print >> self.outfile, msg.request.short() +            if self.o.verbosity == 1: +                print >> self.outfile, "<<", +                print >> self.outfile, msg.short() +            elif self.o.verbosity == 2: +                print >> self.outfile, "<<" +                for i in msg.assemble().splitlines(): +                    print >> self.outfile, "\t", i +                print >> self.outfile, "<<" +            elif self.o.verbosity == 3: +                print >> self.outfile, ">>" +                for i in msg.request.assemble().splitlines(): +                    print >> self.outfile, "\t", i +                print >> self.outfile, ">>" +                print >> self.outfile, "<<" +                for i in msg.assemble().splitlines(): +                    print >> self.outfile, "\t", i +                print >> self.outfile, "<<" + +            msg.ack() +            self.state.delete_flow(f)  # begin nocover  | 
