From b91156723b443f6a7bf6bb7b49e799bd04e8ad15 Mon Sep 17 00:00:00 2001 From: Aldo Cortesi Date: Mon, 1 Mar 2010 14:48:06 +1300 Subject: [PATCH] Split mitmproxy and mitmdump - mitmdump is the non-interactive verison of mitmproxy. --- mitmdump | 62 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ mitmproxy | 23 +-------------------- setup.py | 2 +- todo | 2 +- 4 files changed, 65 insertions(+), 24 deletions(-) create mode 100755 mitmdump diff --git a/mitmdump b/mitmdump new file mode 100755 index 000000000..fe58977fe --- /dev/null +++ b/mitmdump @@ -0,0 +1,62 @@ +#!/usr/bin/env python + +# Copyright (C) 2010 Aldo Cortesi +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + +import sys, os.path +from libmproxy import proxy, controller, console, utils +from optparse import OptionParser, OptionGroup + + +if __name__ == '__main__': + parser = OptionParser( + usage = "%prog [options] output", + version="%prog 0.1", + ) + parser.add_option( + "-c", "--cert", action="store", + type = "str", dest="cert", default="~/.mitmproxy/cert.pem", + help = "SSL certificate file." + ) + parser.add_option( + "-p", "--port", action="store", + type = "int", dest="port", default=8080, + help = "Port." + ) + parser.add_option("-q", "--quiet", + action="store_true", dest="quiet", + help="Quiet.") + parser.add_option("-v", "--verbose", + action="count", dest="verbose", default=1, + help="Increase verbosity. Can be passed multiple times.") + options, args = parser.parse_args() + + if options.quiet: + options.verbose = 0 + + certpath = os.path.expanduser(options.cert) + + if not os.path.exists(certpath): + print >> sys.stderr, "Creating bogus certificate at %s"%options.cert + utils.make_bogus_cert(certpath) + + proxy.config = proxy.Config( + certpath + ) + server = proxy.ProxyServer(options.port) + m = controller.DumpMaster(server, options.verbose) + if options.verbose > 0: + print >> sys.stderr, "Running on port %s"%options.port + m.run() diff --git a/mitmproxy b/mitmproxy index 5c3f5155d..5ae9f0585 100755 --- a/mitmproxy +++ b/mitmproxy @@ -25,11 +25,6 @@ if __name__ == '__main__': usage = "%prog [options] output", version="%prog 0.1", ) - parser.add_option( - "-d", "--dump", action="store_true", - dest="dump", default=False, - help = "Just dump data to screen." - ) parser.add_option( "-c", "--cert", action="store", type = "str", dest="cert", default="~/.mitmproxy/cert.pem", @@ -40,21 +35,10 @@ if __name__ == '__main__': type = "int", dest="port", default=8080, help = "Port." ) - parser.add_option("-q", "--quiet", - action="store_true", dest="quiet", - help="Quiet.") parser.add_option( "-t", "--terminal-backround", action="store_true", dest="terminal_background", default=False, help="Uses the standard terminal background instead of setting an own. Useful for transparent terminals.") - - parser.add_option("-v", "--verbose", - action="count", dest="verbose", default=1, - help="Increase verbosity. Can be passed multiple times.") options, args = parser.parse_args() - - if options.quiet: - options.verbose = 0 - certpath = os.path.expanduser(options.cert) if not os.path.exists(certpath): @@ -65,10 +49,5 @@ if __name__ == '__main__': certpath ) server = proxy.ProxyServer(options.port) - if options.dump: - m = controller.DumpMaster(server, options.verbose) - else: - m = console.ConsoleMaster(server, options) - if options.verbose > 0: - print >> sys.stderr, "Running on port %s"%options.port + m = console.ConsoleMaster(server, options) m.run() diff --git a/setup.py b/setup.py index 5e71069a8..113f1bab9 100644 --- a/setup.py +++ b/setup.py @@ -79,7 +79,7 @@ setup( url = "http://corte.si/software", packages = packages, package_data = package_data, - scripts = ["mitmproxy"], + scripts = ["mitmproxy", "mitmdump"], classifiers = [ "Development Status :: 4 - Beta", "Programming Language :: Python", diff --git a/todo b/todo index 363c07c5a..68cccaa64 100644 --- a/todo +++ b/todo @@ -6,10 +6,10 @@ Future: - On-the-fly generation of keys, signed with a CA - Pass-through fast-track for things that don't match filter? - Reading contents from file - - Saving contents to file - Shortcut for viewing in pager - Serializing and de-serializing requests and responses. - Use real non-blocking input handling to minimize cpu load. + - Upstream proxies. Bugs: