diff options
author | Aldo Cortesi <aldo@nullcube.com> | 2010-03-01 14:48:06 +1300 |
---|---|---|
committer | Aldo Cortesi <aldo@nullcube.com> | 2010-03-01 14:48:06 +1300 |
commit | b91156723b443f6a7bf6bb7b49e799bd04e8ad15 (patch) | |
tree | 93bd944e03cfd6e60e6a5f07fb41cd6dc10790d8 | |
parent | 6300a57212499cf8daf126eeec26c489fbcc71cd (diff) | |
download | mitmproxy-b91156723b443f6a7bf6bb7b49e799bd04e8ad15.tar.gz mitmproxy-b91156723b443f6a7bf6bb7b49e799bd04e8ad15.tar.bz2 mitmproxy-b91156723b443f6a7bf6bb7b49e799bd04e8ad15.zip |
Split mitmproxy and mitmdump - mitmdump is the non-interactive verison of mitmproxy.
-rwxr-xr-x | mitmdump | 62 | ||||
-rwxr-xr-x | mitmproxy | 23 | ||||
-rw-r--r-- | setup.py | 2 | ||||
-rw-r--r-- | todo | 2 |
4 files changed, 65 insertions, 24 deletions
diff --git a/mitmdump b/mitmdump new file mode 100755 index 00000000..fe58977f --- /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 <http://www.gnu.org/licenses/>. + +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() @@ -26,11 +26,6 @@ if __name__ == '__main__': 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", help = "SSL certificate file." @@ -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() @@ -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", @@ -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: |