Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
I've added a little bit of code which enables a reverse proxy mode for mitmproxy. This pull request contains two commits to bring that to the master.
When run with the option "-R localhost:80", mitmproxy will accept a non-proxy-mode HTTP request ("GET / HTTP/1.0"), set scheme to http and host/port to localhost:80, and the proxy connection will then be made to the correct server.
The code still assumes that the client will transmit the correct Host: header that the upstream/origin server will accept as it's own (name-based virtual hosts), and will not tamper with that header, but that can probably be "fixed" elsewhere if needed.
I have not even tried to figure out how this copes with https, sorry for my ignorance. But it should still be useful for many - it's a very handy tool for debugging client requests when you have access to the server (or a box in between) but it'd be hard to add proxy configuration to the client.