diff options
author | Henrik Nordstrom <henrik@henriknordstrom.net> | 2010-11-17 14:11:56 +0100 |
---|---|---|
committer | Henrik Nordstrom <henrik@henriknordstrom.net> | 2011-02-10 02:59:51 +0100 |
commit | d11dd742d8593087959b6f1e0d9cc1f956dee03e (patch) | |
tree | 9ac076b44004556cfc83682999a4774639759868 /mitmplayback | |
parent | 4bae297fbbe294a962116f574ca1b8ae434e0886 (diff) | |
download | mitmproxy-d11dd742d8593087959b6f1e0d9cc1f956dee03e.tar.gz mitmproxy-d11dd742d8593087959b6f1e0d9cc1f956dee03e.tar.bz2 mitmproxy-d11dd742d8593087959b6f1e0d9cc1f956dee03e.zip |
Simple record & playback functionality
Diffstat (limited to 'mitmplayback')
-rwxr-xr-x | mitmplayback | 75 |
1 files changed, 75 insertions, 0 deletions
diff --git a/mitmplayback b/mitmplayback new file mode 100755 index 00000000..ea802094 --- /dev/null +++ b/mitmplayback @@ -0,0 +1,75 @@ +#!/usr/bin/env python + +# Copyright (C) 2010 Henrik Nordstrom <henrik@henriknordstrom.net> +# +# Based on mitmproxy mitmdump +# 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, playback, utils +from libmproxy import VERSION +from optparse import OptionParser, OptionGroup + + +if __name__ == '__main__': + parser = OptionParser( + usage = "%prog [options] output", + version="%%prog %s"%VERSION, + ) + + 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( + "-s", "--store", action="store", + type = "str", dest="cache", default="cache/", + help = "Session store location" + ) + + 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) + options.cache = os.path.expanduser(options.cache) + + 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 = playback.PlaybackMaster(server, options) + m.run() |