aboutsummaryrefslogtreecommitdiffstats
path: root/libmproxy
diff options
context:
space:
mode:
authorAldo Cortesi <aldo@nullcube.com>2011-02-16 23:03:46 +1300
committerAldo Cortesi <aldo@nullcube.com>2011-02-16 23:03:46 +1300
commitf5511350eb383a2d2d73c6d1ae328f6eb00f501f (patch)
tree777d1be8a1e83897637b05877bc8fdd850abfc1f /libmproxy
parent8a9f20b78cf1ae51d4c10cd892500c252aef2ca3 (diff)
downloadmitmproxy-f5511350eb383a2d2d73c6d1ae328f6eb00f501f.tar.gz
mitmproxy-f5511350eb383a2d2d73c6d1ae328f6eb00f501f.tar.bz2
mitmproxy-f5511350eb383a2d2d73c6d1ae328f6eb00f501f.zip
Tweaks and cleanups for mitmdump.
Diffstat (limited to 'libmproxy')
-rw-r--r--libmproxy/dump.py64
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