From ac27d1236fdbf69c826b5d2bb4c69ebbe8ab40a1 Mon Sep 17 00:00:00 2001 From: Maximilian Hils Date: Sun, 7 Sep 2014 18:01:30 +0200 Subject: improve change_server api, add example how to change the upstream server --- examples/change_upstream_proxy.py | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) create mode 100644 examples/change_upstream_proxy.py (limited to 'examples') diff --git a/examples/change_upstream_proxy.py b/examples/change_upstream_proxy.py new file mode 100644 index 00000000..2e4c6080 --- /dev/null +++ b/examples/change_upstream_proxy.py @@ -0,0 +1,17 @@ +# This scripts demonstrates how mitmproxy can switch to a different upstream proxy +# in upstream proxy mode. +# +# Usage: mitmdump -s "change_upstream_proxy.py host" +from libmproxy.protocol.http import send_connect_request + +def should_redirect(flow): + return (flow.request.host == "example.com") +alternative_upstream_proxy = ("localhost",8082) + +def request(ctx, flow): + if flow.live and should_redirect(flow): + + server_changed = flow.live.change_server(alternative_upstream_proxy, persistent_change=True) + if flow.request.scheme == "https" and server_changed: + send_connect_request(flow.live.c.server_conn, flow.request.host, flow.request.port) + flow.live.c.establish_ssl(server=True) -- cgit v1.2.3