aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMaximilian Hils <git@maximilianhils.com>2016-02-18 11:27:40 +0100
committerMaximilian Hils <git@maximilianhils.com>2016-02-18 11:27:40 +0100
commitbf024cd15320119e341cdf9bf0fd4d69df233c64 (patch)
tree05a6338d94c665421ae1eab07f14aed61b8bd2b1
parentf42af9061220ec0373e94e96b69434575f60281d (diff)
parent31ab3a231e540815009ffe5aeae108db2babd8a9 (diff)
downloadmitmproxy-bf024cd15320119e341cdf9bf0fd4d69df233c64.tar.gz
mitmproxy-bf024cd15320119e341cdf9bf0fd4d69df233c64.tar.bz2
mitmproxy-bf024cd15320119e341cdf9bf0fd4d69df233c64.zip
Merge branch 'master' of https://github.com/mitmproxy/mitmproxy
-rw-r--r--.landscape.yml4
-rw-r--r--.travis.yml2
-rw-r--r--CHANGELOG (renamed from mitmproxy/CHANGELOG)97
-rw-r--r--CONTRIBUTING.md39
-rw-r--r--MANIFEST.in4
-rw-r--r--README.rst27
-rw-r--r--docs/.gitignore (renamed from mitmproxy/docs/.gitignore)0
-rw-r--r--docs/Makefile (renamed from mitmproxy/docs/Makefile)0
-rw-r--r--docs/_templates/page.html (renamed from mitmproxy/docs/_templates/page.html)0
-rw-r--r--docs/certinstall-webapp.png (renamed from mitmproxy/docs/certinstall-webapp.png)bin61683 -> 61683 bytes
-rw-r--r--docs/certinstall.rst (renamed from mitmproxy/docs/certinstall.rst)0
-rw-r--r--docs/conf.py (renamed from mitmproxy/docs/conf.py)0
-rw-r--r--docs/config.rst (renamed from mitmproxy/docs/config.rst)0
-rw-r--r--docs/custom-routing.txt (renamed from mitmproxy/docs/custom-routing.txt)0
-rw-r--r--docs/dev/addingviews.html (renamed from mitmproxy/docs/dev/addingviews.html)0
-rw-r--r--docs/dev/architecture.rst (renamed from mitmproxy/docs/dev/architecture.rst)0
-rw-r--r--docs/dev/exceptions.rst (renamed from mitmproxy/docs/dev/exceptions.rst)0
-rw-r--r--docs/dev/models.rst (renamed from mitmproxy/docs/dev/models.rst)0
-rw-r--r--docs/dev/protocols.rst (renamed from mitmproxy/docs/dev/protocols.rst)0
-rw-r--r--docs/dev/proxy.rst (renamed from mitmproxy/docs/dev/proxy.rst)0
-rw-r--r--docs/dev/sslkeylogfile.rst (renamed from mitmproxy/docs/dev/sslkeylogfile.rst)0
-rw-r--r--docs/dev/testing.rst (renamed from mitmproxy/docs/dev/testing.rst)0
-rw-r--r--docs/favicon.ico (renamed from mitmproxy/docs/favicon.ico)bin5430 -> 5430 bytes
-rw-r--r--docs/features/anticache.rst (renamed from mitmproxy/docs/features/anticache.rst)0
-rw-r--r--docs/features/clientreplay.rst (renamed from mitmproxy/docs/features/clientreplay.rst)0
-rw-r--r--docs/features/filters.rst (renamed from mitmproxy/docs/features/filters.rst)0
-rw-r--r--docs/features/passthrough.rst (renamed from mitmproxy/docs/features/passthrough.rst)0
-rw-r--r--docs/features/proxyauth.rst (renamed from mitmproxy/docs/features/proxyauth.rst)0
-rw-r--r--docs/features/replacements.rst (renamed from mitmproxy/docs/features/replacements.rst)0
-rw-r--r--docs/features/responsestreaming.rst (renamed from mitmproxy/docs/features/responsestreaming.rst)0
-rw-r--r--docs/features/reverseproxy.rst (renamed from mitmproxy/docs/features/reverseproxy.rst)0
-rw-r--r--docs/features/serverreplay.rst (renamed from mitmproxy/docs/features/serverreplay.rst)0
-rw-r--r--docs/features/setheaders.rst (renamed from mitmproxy/docs/features/setheaders.rst)0
-rw-r--r--docs/features/socksproxy.rst (renamed from mitmproxy/docs/features/socksproxy.rst)0
-rw-r--r--docs/features/sticky.rst (renamed from mitmproxy/docs/features/sticky.rst)0
-rw-r--r--docs/features/tcpproxy.rst (renamed from mitmproxy/docs/features/tcpproxy.rst)0
-rw-r--r--docs/features/upstreamcerts.rst (renamed from mitmproxy/docs/features/upstreamcerts.rst)0
-rw-r--r--docs/features/upstreamproxy.rst (renamed from mitmproxy/docs/features/upstreamproxy.rst)0
-rw-r--r--docs/howmitmproxy.rst (renamed from mitmproxy/docs/howmitmproxy.rst)0
-rw-r--r--docs/index.rst (renamed from mitmproxy/docs/index.rst)0
-rw-r--r--docs/install.rst (renamed from mitmproxy/docs/install.rst)0
-rw-r--r--docs/introduction.rst (renamed from mitmproxy/docs/introduction.rst)0
-rw-r--r--docs/mitmdump.rst (renamed from mitmproxy/docs/mitmdump.rst)0
-rw-r--r--docs/mitmproxy-docs.png (renamed from mitmproxy/docs/mitmproxy-docs.png)bin21323 -> 21323 bytes
-rw-r--r--docs/mitmproxy-long.png (renamed from mitmproxy/docs/mitmproxy-long.png)bin123829 -> 123829 bytes
-rw-r--r--docs/mitmproxy.rst (renamed from mitmproxy/docs/mitmproxy.rst)0
-rw-r--r--docs/modes.rst (renamed from mitmproxy/docs/modes.rst)0
-rw-r--r--docs/schematics/_explicit.graffle/data.plist (renamed from mitmproxy/docs/schematics/_explicit.graffle/data.plist)0
-rw-r--r--docs/schematics/_explicit.graffle/image3.icns (renamed from mitmproxy/docs/schematics/_explicit.graffle/image3.icns)bin97327 -> 97327 bytes
-rw-r--r--docs/schematics/_explicit.graffle/image6.tiff (renamed from mitmproxy/docs/schematics/_explicit.graffle/image6.tiff)bin5075704 -> 5075704 bytes
-rw-r--r--docs/schematics/_explicit_https.graffle/data.plist (renamed from mitmproxy/docs/schematics/_explicit_https.graffle/data.plist)0
-rw-r--r--docs/schematics/_explicit_https.graffle/image3.icns (renamed from mitmproxy/docs/schematics/_explicit_https.graffle/image3.icns)bin97327 -> 97327 bytes
-rw-r--r--docs/schematics/_explicit_https.graffle/image6.tiff (renamed from mitmproxy/docs/schematics/_explicit_https.graffle/image6.tiff)bin5075704 -> 5075704 bytes
-rw-r--r--docs/schematics/_transparent.graffle/data.plist (renamed from mitmproxy/docs/schematics/_transparent.graffle/data.plist)0
-rw-r--r--docs/schematics/_transparent.graffle/image3.icns (renamed from mitmproxy/docs/schematics/_transparent.graffle/image3.icns)bin97327 -> 97327 bytes
-rw-r--r--docs/schematics/_transparent.graffle/image6.tiff (renamed from mitmproxy/docs/schematics/_transparent.graffle/image6.tiff)bin5075704 -> 5075704 bytes
-rw-r--r--docs/schematics/_transparent_https.graffle/data.plist (renamed from mitmproxy/docs/schematics/_transparent_https.graffle/data.plist)0
-rw-r--r--docs/schematics/_transparent_https.graffle/image3.icns (renamed from mitmproxy/docs/schematics/_transparent_https.graffle/image3.icns)bin97327 -> 97327 bytes
-rw-r--r--docs/schematics/_transparent_https.graffle/image6.tiff (renamed from mitmproxy/docs/schematics/_transparent_https.graffle/image6.tiff)bin5075704 -> 5075704 bytes
-rw-r--r--docs/schematics/architecture.pdf (renamed from mitmproxy/docs/schematics/architecture.pdf)bin182446 -> 182446 bytes
-rw-r--r--docs/schematics/architecture.png (renamed from mitmproxy/docs/schematics/architecture.png)bin87365 -> 87365 bytes
-rw-r--r--docs/schematics/architecture.vsdx (renamed from mitmproxy/docs/schematics/architecture.vsdx)bin60922 -> 60922 bytes
-rw-r--r--docs/schematics/how-mitmproxy-works-explicit-https.png (renamed from mitmproxy/docs/schematics/how-mitmproxy-works-explicit-https.png)bin78951 -> 78951 bytes
-rw-r--r--docs/schematics/how-mitmproxy-works-explicit.png (renamed from mitmproxy/docs/schematics/how-mitmproxy-works-explicit.png)bin65305 -> 65305 bytes
-rw-r--r--docs/schematics/how-mitmproxy-works-transparent-https.png (renamed from mitmproxy/docs/schematics/how-mitmproxy-works-transparent-https.png)bin79758 -> 79758 bytes
-rw-r--r--docs/schematics/how-mitmproxy-works-transparent.png (renamed from mitmproxy/docs/schematics/how-mitmproxy-works-transparent.png)bin69375 -> 69375 bytes
-rw-r--r--docs/schematics/proxy-modes-flowchart.png (renamed from mitmproxy/docs/schematics/proxy-modes-flowchart.png)bin71622 -> 71622 bytes
-rw-r--r--docs/schematics/proxy-modes-regular.png (renamed from mitmproxy/docs/schematics/proxy-modes-regular.png)bin18283 -> 18283 bytes
-rw-r--r--docs/schematics/proxy-modes-reverse.png (renamed from mitmproxy/docs/schematics/proxy-modes-reverse.png)bin16719 -> 16719 bytes
-rw-r--r--docs/schematics/proxy-modes-transparent-1.png (renamed from mitmproxy/docs/schematics/proxy-modes-transparent-1.png)bin14558 -> 14558 bytes
-rw-r--r--docs/schematics/proxy-modes-transparent-2.png (renamed from mitmproxy/docs/schematics/proxy-modes-transparent-2.png)bin23375 -> 23375 bytes
-rw-r--r--docs/schematics/proxy-modes-transparent-3.png (renamed from mitmproxy/docs/schematics/proxy-modes-transparent-3.png)bin23855 -> 23855 bytes
-rw-r--r--docs/schematics/proxy-modes-transparent-wrong.png (renamed from mitmproxy/docs/schematics/proxy-modes-transparent-wrong.png)bin14719 -> 14719 bytes
-rw-r--r--docs/schematics/proxy-modes-upstream.png (renamed from mitmproxy/docs/schematics/proxy-modes-upstream.png)bin14781 -> 14781 bytes
-rw-r--r--docs/schematics/proxy-modes.pdf (renamed from mitmproxy/docs/schematics/proxy-modes.pdf)bin335485 -> 335485 bytes
-rw-r--r--docs/schematics/proxy-modes.vsdx (renamed from mitmproxy/docs/schematics/proxy-modes.vsdx)bin191464 -> 191464 bytes
-rw-r--r--docs/screenshots/firefox3-import.jpg (renamed from mitmproxy/docs/screenshots/firefox3-import.jpg)bin55496 -> 55496 bytes
-rw-r--r--docs/screenshots/firefox3-trust.jpg (renamed from mitmproxy/docs/screenshots/firefox3-trust.jpg)bin31495 -> 31495 bytes
-rw-r--r--docs/screenshots/firefox3.jpg (renamed from mitmproxy/docs/screenshots/firefox3.jpg)bin57366 -> 57366 bytes
-rw-r--r--docs/screenshots/ios-gateway.png (renamed from mitmproxy/docs/screenshots/ios-gateway.png)bin154469 -> 154469 bytes
-rw-r--r--docs/screenshots/ios-installed.png (renamed from mitmproxy/docs/screenshots/ios-installed.png)bin80251 -> 80251 bytes
-rw-r--r--docs/screenshots/ios-manual.png (renamed from mitmproxy/docs/screenshots/ios-manual.png)bin196431 -> 196431 bytes
-rw-r--r--docs/screenshots/ios-profile.png (renamed from mitmproxy/docs/screenshots/ios-profile.png)bin83364 -> 83364 bytes
-rw-r--r--docs/screenshots/ios-reverse.png (renamed from mitmproxy/docs/screenshots/ios-reverse.png)bin66150 -> 66150 bytes
-rw-r--r--docs/screenshots/ios-warning.png (renamed from mitmproxy/docs/screenshots/ios-warning.png)bin75604 -> 75604 bytes
-rw-r--r--docs/screenshots/mitmproxy-flowview.png (renamed from mitmproxy/docs/screenshots/mitmproxy-flowview.png)bin315864 -> 315864 bytes
-rw-r--r--docs/screenshots/mitmproxy-intercept-filt.png (renamed from mitmproxy/docs/screenshots/mitmproxy-intercept-filt.png)bin18332 -> 18332 bytes
-rw-r--r--docs/screenshots/mitmproxy-intercept-mid.png (renamed from mitmproxy/docs/screenshots/mitmproxy-intercept-mid.png)bin19841 -> 19841 bytes
-rw-r--r--docs/screenshots/mitmproxy-intercept-options.png (renamed from mitmproxy/docs/screenshots/mitmproxy-intercept-options.png)bin41281 -> 41281 bytes
-rw-r--r--docs/screenshots/mitmproxy-intercept-result.png (renamed from mitmproxy/docs/screenshots/mitmproxy-intercept-result.png)bin22855 -> 22855 bytes
-rw-r--r--docs/screenshots/mitmproxy-kveditor-editmode.png (renamed from mitmproxy/docs/screenshots/mitmproxy-kveditor-editmode.png)bin44528 -> 44528 bytes
-rw-r--r--docs/screenshots/mitmproxy-kveditor.png (renamed from mitmproxy/docs/screenshots/mitmproxy-kveditor.png)bin44852 -> 44852 bytes
-rw-r--r--docs/screenshots/mitmproxy.png (renamed from mitmproxy/docs/screenshots/mitmproxy.png)bin152596 -> 152596 bytes
-rw-r--r--docs/screenshots/osx-addcert-alwaystrust.png (renamed from mitmproxy/docs/screenshots/osx-addcert-alwaystrust.png)bin47146 -> 47146 bytes
-rw-r--r--docs/screenshots/win7-certstore-trustedroot.png (renamed from mitmproxy/docs/screenshots/win7-certstore-trustedroot.png)bin39236 -> 39236 bytes
-rw-r--r--docs/screenshots/win7-certstore.png (renamed from mitmproxy/docs/screenshots/win7-certstore.png)bin37453 -> 37453 bytes
-rw-r--r--docs/screenshots/win7-wizard.png (renamed from mitmproxy/docs/screenshots/win7-wizard.png)bin66456 -> 66456 bytes
-rw-r--r--docs/screenshots/winpythoninstaller.jpg (renamed from mitmproxy/docs/screenshots/winpythoninstaller.jpg)bin46628 -> 46628 bytes
-rw-r--r--docs/scripting/inlinescripts.rst (renamed from mitmproxy/docs/scripting/inlinescripts.rst)0
-rw-r--r--docs/scripting/mitmproxy.rst (renamed from mitmproxy/docs/scripting/mitmproxy.rst)0
-rw-r--r--docs/transparent.rst (renamed from mitmproxy/docs/transparent.rst)0
-rw-r--r--docs/transparent/linux.rst (renamed from mitmproxy/docs/transparent/linux.rst)0
-rw-r--r--docs/transparent/osx.rst (renamed from mitmproxy/docs/transparent/osx.rst)0
-rw-r--r--docs/tutorials/30second.rst (renamed from mitmproxy/docs/tutorials/30second.rst)0
-rw-r--r--docs/tutorials/gamecenter.rst (renamed from mitmproxy/docs/tutorials/gamecenter.rst)0
-rw-r--r--docs/tutorials/leaderboard.png (renamed from mitmproxy/docs/tutorials/leaderboard.png)bin448368 -> 448368 bytes
-rw-r--r--docs/tutorials/one.png (renamed from mitmproxy/docs/tutorials/one.png)bin141443 -> 141443 bytes
-rw-r--r--docs/tutorials/supermega.png (renamed from mitmproxy/docs/tutorials/supermega.png)bin92889 -> 92889 bytes
-rw-r--r--docs/tutorials/transparent-dhcp.rst (renamed from mitmproxy/docs/tutorials/transparent-dhcp.rst)0
-rw-r--r--docs/tutorials/transparent-dhcp/step1_proxy.png (renamed from mitmproxy/docs/tutorials/transparent-dhcp/step1_proxy.png)bin246413 -> 246413 bytes
-rw-r--r--docs/tutorials/transparent-dhcp/step1_vbox_eth0.png (renamed from mitmproxy/docs/tutorials/transparent-dhcp/step1_vbox_eth0.png)bin28237 -> 28237 bytes
-rw-r--r--docs/tutorials/transparent-dhcp/step1_vbox_eth1.png (renamed from mitmproxy/docs/tutorials/transparent-dhcp/step1_vbox_eth1.png)bin28765 -> 28765 bytes
-rw-r--r--docs/tutorials/transparent-dhcp/step2_proxied_vm.png (renamed from mitmproxy/docs/tutorials/transparent-dhcp/step2_proxied_vm.png)bin36775 -> 36775 bytes
-rw-r--r--examples/README (renamed from mitmproxy/examples/README)0
-rw-r--r--examples/add_header.py (renamed from mitmproxy/examples/add_header.py)0
-rw-r--r--examples/change_upstream_proxy.py (renamed from mitmproxy/examples/change_upstream_proxy.py)0
-rw-r--r--examples/custom_contentviews.py (renamed from mitmproxy/examples/custom_contentviews.py)0
-rw-r--r--examples/dns_spoofing.py (renamed from mitmproxy/examples/dns_spoofing.py)0
-rw-r--r--examples/dup_and_replay.py (renamed from mitmproxy/examples/dup_and_replay.py)0
-rw-r--r--examples/filt.py (renamed from mitmproxy/examples/filt.py)0
-rw-r--r--examples/flowbasic (renamed from mitmproxy/examples/flowbasic)0
-rw-r--r--examples/flowwriter.py (renamed from mitmproxy/examples/flowwriter.py)0
-rw-r--r--examples/har_extractor.py (renamed from mitmproxy/examples/har_extractor.py)0
-rw-r--r--examples/iframe_injector.py (renamed from mitmproxy/examples/iframe_injector.py)0
-rw-r--r--examples/mitmproxywrapper.py (renamed from mitmproxy/examples/mitmproxywrapper.py)0
-rw-r--r--examples/modify_form.py (renamed from mitmproxy/examples/modify_form.py)0
-rw-r--r--examples/modify_querystring.py (renamed from mitmproxy/examples/modify_querystring.py)0
-rw-r--r--examples/modify_response_body.py (renamed from mitmproxy/examples/modify_response_body.py)0
-rw-r--r--examples/nonblocking.py (renamed from mitmproxy/examples/nonblocking.py)0
-rw-r--r--examples/pathod/libpathod_pathoc.py (renamed from pathod/examples/libpathod_pathoc.py)0
-rw-r--r--examples/pathod/test_context.py (renamed from pathod/examples/test_context.py)0
-rw-r--r--examples/pathod/test_setup.py (renamed from pathod/examples/test_setup.py)0
-rw-r--r--examples/pathod/test_setupall.py (renamed from pathod/examples/test_setupall.py)0
-rw-r--r--examples/proxapp.py (renamed from mitmproxy/examples/proxapp.py)0
-rw-r--r--examples/read_dumpfile (renamed from mitmproxy/examples/read_dumpfile)0
-rw-r--r--examples/redirect_requests.py (renamed from mitmproxy/examples/redirect_requests.py)0
-rw-r--r--examples/sslstrip.py (renamed from mitmproxy/examples/sslstrip.py)0
-rw-r--r--examples/stickycookies (renamed from mitmproxy/examples/stickycookies)0
-rw-r--r--examples/stream.py (renamed from mitmproxy/examples/stream.py)0
-rw-r--r--examples/stream_modify.py (renamed from mitmproxy/examples/stream_modify.py)0
-rw-r--r--examples/stub.py (renamed from mitmproxy/examples/stub.py)0
-rw-r--r--examples/tcp_message.py (renamed from mitmproxy/examples/tcp_message.py)0
-rw-r--r--examples/tls_passthrough.py (renamed from mitmproxy/examples/tls_passthrough.py)0
-rw-r--r--examples/upsidedownternet.py (renamed from mitmproxy/examples/upsidedownternet.py)0
-rw-r--r--issue_template.md28
-rw-r--r--mitmproxy/MANIFEST.in2
-rw-r--r--mitmproxy/mitmproxy/console/flowview.py7
-rw-r--r--mitmproxy/mitmproxy/contentviews.py27
-rw-r--r--mitmproxy/mitmproxy/protocol/http2.py15
-rw-r--r--mitmproxy/setup.py2
-rw-r--r--pathod/CHANGELOG83
-rw-r--r--pathod/MANIFEST.in2
-rw-r--r--release/.gitignore2
-rwxr-xr-x[-rw-r--r--]release/rtool.py2
-rw-r--r--test/mitmproxy/fuzzing/.env10
-rw-r--r--test/mitmproxy/fuzzing/straight_stream_patterns1
-rw-r--r--test/mitmproxy/test_contentview.py21
-rw-r--r--test/mitmproxy/test_examples.py2
158 files changed, 215 insertions, 162 deletions
diff --git a/.landscape.yml b/.landscape.yml
index 1cf78412..d4f32733 100644
--- a/.landscape.yml
+++ b/.landscape.yml
@@ -1,6 +1,6 @@
ignore-paths:
- - mitmproxy/docs
- - mitmproxy/examples
+ - docs
+ - examples
- mitmproxy/mitmproxy/contrib
- mitmproxy/web
max-line-length: 140
diff --git a/.travis.yml b/.travis.yml
index 06b31773..5804b5c7 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -25,7 +25,7 @@ matrix:
env: SCOPE="netlib" NO_ALPN=1
- python: 2.7
env: DOCS=1
- script: 'cd mitmproxy/docs && make html'
+ script: 'cd docs && make html'
allow_failures:
- python: pypy
diff --git a/mitmproxy/CHANGELOG b/CHANGELOG
index b41b4a24..068b729d 100644
--- a/mitmproxy/CHANGELOG
+++ b/CHANGELOG
@@ -223,6 +223,19 @@
* Countless bugfixes and other small improvements
+ * pathod: Hugely improved SSL support, including dynamic generation of certificates
+ using the mitproxy cacert
+
+7 November 2014: pathod 0.11:
+
+ * Hugely improved SSL support, including dynamic generation of certificates
+ using the mitproxy cacert
+
+ * pathoc -S dumps information on the remote SSL certificate chain
+
+ * Big improvements to fuzzing, including random spec selection and memoization to avoid repeating randomly generated patterns
+
+ * Reflected patterns, allowing you to embed a pathod server response specification in a pathoc request, resolving both on client side. This makes fuzzing proxies and other intermediate systems much better.
28 January 2014: mitmproxy 0.10:
@@ -264,6 +277,9 @@
* Many other small bugfixes and improvements.
+25 August 2013: pathod 0.9.2:
+
+ * Adapt to interface changes in netlib
16 June 2013: mitmproxy 0.9.1:
@@ -322,6 +338,87 @@
* Proxy authentication to limit access to mitmproxy
+ * pathod: Proxy mode. You can now configure clients to use pathod as an
+ HTTP/S proxy.
+
+ * pathoc: Proxy support, including using CONNECT to tunnel directly to
+ targets.
+
+ * pathoc: client certificate support.
+
+ * pathod: API improvements, bugfixes.
+
+
+15 May 2013: pathod 0.9 (version synced with mitmproxy):
+
+ * Pathod proxy mode. You can now configure clients to use pathod as an
+ HTTP/S proxy.
+
+ * Pathoc proxy support, including using CONNECT to tunnel directly to
+ targets.
+
+ * Pathoc client certificate support.
+
+ * API improvements, bugfixes.
+
+
+16 November 2012: pathod 0.3:
+
+ A release focusing on shoring up our fuzzing capabilities, especially with
+ pathoc.
+
+ * pathoc -q and -r options, output full request and response text.
+
+ * pathod -q and -r options, add full request and response text to pathod's
+ log buffer.
+
+ * pathoc and pathod -x option, makes -q and -r options log in hex dump
+ format.
+
+ * pathoc -C option, specify response codes to ignore.
+
+ * pathoc -T option, instructs pathoc to ignore timeouts.
+
+ * pathoc -o option, a one-shot mode that exits after the first non-ignored
+ response.
+
+ * pathoc and pathod -e option, which explains the resulting message by
+ expanding random and generated portions, and logging a reproducible
+ specification.
+
+ * Streamline the specification langauge. HTTP response message is now
+ specified using the "r" mnemonic.
+
+ * Add a "u" mnemonic for specifying User-Agent strings. Add a set of
+ standard user-agent strings accessible through shortcuts.
+
+ * Major internal refactoring and cleanup.
+
+ * Many bugfixes.
+
+
+22 August 2012: pathod 0.2:
+
+ * Add pathoc, a pathological HTTP client.
+
+ * Add libpathod.test, a truss for using pathod in unit tests.
+
+ * Add an injection operator to the specification language.
+
+ * Allow Python escape sequences in value literals.
+
+ * Allow execution of requests and responses from file, using the new + operator.
+
+ * Add daemonization to Pathod, and make it more robust for public-facing use.
+
+ * Let pathod pick an arbitrary open port if -p 0 is specified.
+
+ * Move from Tornado to netlib, the network library written for mitmproxy.
+
+ * Move the web application to Flask.
+
+ * Massively expand the documentation.
+
5 April 2012: mitmproxy 0.8:
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
deleted file mode 100644
index ae948d73..00000000
--- a/CONTRIBUTING.md
+++ /dev/null
@@ -1,39 +0,0 @@
-# Contributing
-
-Thank you for your interest in contributing to mitmproxy!
-
-# Bug Reports
-
-Bug Reports are very welcome - please file them on the GitHub [issue tracker](https://github.com/mitmproxy/mitmproxy/issues).
-You can use the following template to structure your report:
-
-```
-##### Steps to reproduce the problem:
-1.
-2.
-3.
-
-##### What is the expected behavior?
-
-
-##### What went wrong?
-
-
-##### Any other comments?
-
-
----
-mitmproxy version:
-Operating System:
-```
-
-# Feature Requests
-
-We're happy to hear what you'd like to see in mitmproxy. Please file feature requests on the GitHub [issue tracker](https://github.com/mitmproxy/mitmproxy/issues).
-
-# Patches
-
-We're always happy to accept patches. Please submit them in the form of pull requests to the main [mitmproxy repository](https://github.com/mitmproxy/mitmproxy/).
-If you're working on something cool, please do not hesistate and get in touch!
-
-Instructions for setting up a development environment can be found in the [README](README.rst).
diff --git a/MANIFEST.in b/MANIFEST.in
new file mode 100644
index 00000000..440a14ed
--- /dev/null
+++ b/MANIFEST.in
@@ -0,0 +1,4 @@
+graft mitmproxy
+graft pathod
+graft netlib
+recursive-exclude * *.pyc *.pyo *.swo *.swp *.map \ No newline at end of file
diff --git a/README.rst b/README.rst
index d6285700..d816a763 100644
--- a/README.rst
+++ b/README.rst
@@ -82,7 +82,7 @@ Please ensure that all patches are accompanied by matching changes in the test
suite. The project tries to maintain 100% test coverage.
-Docs
+Documentation
----
The mitmproxy documentation is build using Sphinx_, which is installed automatically if you set up a development
@@ -100,6 +100,30 @@ The last command invokes `sphinx-autobuild`_, which watches the Sphinx directory
the documentation when a change is detected.
+Contributing
+----
+
+Thank you for your interest in contributing to mitmproxy!
+
+* Bug Reports
+
+Bug Reports are very welcome - please file them on the GitHub issue_tracker_.
+Please make sure to fill out the template and provide as much information as
+possible.
+
+* Feature Requests
+
+We're happy to hear what you'd like to see in mitmproxy. Please file feature
+requests on the GitHub issue_tracker_.
+
+* Patches
+
+We're always happy to accept patches. Please submit them in the form of pull
+requests to the this repository. If you're working on something cool, please do
+not hesitate and get in touch!
+
+
+
.. |mitmproxy_site| image:: https://shields.mitmproxy.org/api/https%3A%2F%2F-mitmproxy.org-blue.svg
:target: https://mitmproxy.org/
:alt: mitmproxy.org
@@ -143,3 +167,4 @@ the documentation when a change is detected.
.. _.env: https://github.com/mitmproxy/mitmproxy/blob/master/.env
.. _Sphinx: http://sphinx-doc.org/
.. _sphinx-autobuild: https://pypi.python.org/pypi/sphinx-autobuild
+.. _issue_tracker: https://github.com/mitmproxy/mitmproxy/issues
diff --git a/mitmproxy/docs/.gitignore b/docs/.gitignore
index 69fa449d..69fa449d 100644
--- a/mitmproxy/docs/.gitignore
+++ b/docs/.gitignore
diff --git a/mitmproxy/docs/Makefile b/docs/Makefile
index 74bcda53..74bcda53 100644
--- a/mitmproxy/docs/Makefile
+++ b/docs/Makefile
diff --git a/mitmproxy/docs/_templates/page.html b/docs/_templates/page.html
index 8002396a..8002396a 100644
--- a/mitmproxy/docs/_templates/page.html
+++ b/docs/_templates/page.html
diff --git a/mitmproxy/docs/certinstall-webapp.png b/docs/certinstall-webapp.png
index 10e795cd..10e795cd 100644
--- a/mitmproxy/docs/certinstall-webapp.png
+++ b/docs/certinstall-webapp.png
Binary files differ
diff --git a/mitmproxy/docs/certinstall.rst b/docs/certinstall.rst
index 5a8cce64..5a8cce64 100644
--- a/mitmproxy/docs/certinstall.rst
+++ b/docs/certinstall.rst
diff --git a/mitmproxy/docs/conf.py b/docs/conf.py
index 01bcce1b..01bcce1b 100644
--- a/mitmproxy/docs/conf.py
+++ b/docs/conf.py
diff --git a/mitmproxy/docs/config.rst b/docs/config.rst
index 634b8703..634b8703 100644
--- a/mitmproxy/docs/config.rst
+++ b/docs/config.rst
diff --git a/mitmproxy/docs/custom-routing.txt b/docs/custom-routing.txt
index 2ba2281f..2ba2281f 100644
--- a/mitmproxy/docs/custom-routing.txt
+++ b/docs/custom-routing.txt
diff --git a/mitmproxy/docs/dev/addingviews.html b/docs/dev/addingviews.html
index 12623a31..12623a31 100644
--- a/mitmproxy/docs/dev/addingviews.html
+++ b/docs/dev/addingviews.html
diff --git a/mitmproxy/docs/dev/architecture.rst b/docs/dev/architecture.rst
index e7995141..e7995141 100644
--- a/mitmproxy/docs/dev/architecture.rst
+++ b/docs/dev/architecture.rst
diff --git a/mitmproxy/docs/dev/exceptions.rst b/docs/dev/exceptions.rst
index e890476b..e890476b 100644
--- a/mitmproxy/docs/dev/exceptions.rst
+++ b/docs/dev/exceptions.rst
diff --git a/mitmproxy/docs/dev/models.rst b/docs/dev/models.rst
index 7a949941..7a949941 100644
--- a/mitmproxy/docs/dev/models.rst
+++ b/docs/dev/models.rst
diff --git a/mitmproxy/docs/dev/protocols.rst b/docs/dev/protocols.rst
index ceb5c2fd..ceb5c2fd 100644
--- a/mitmproxy/docs/dev/protocols.rst
+++ b/docs/dev/protocols.rst
diff --git a/mitmproxy/docs/dev/proxy.rst b/docs/dev/proxy.rst
index 888fb946..888fb946 100644
--- a/mitmproxy/docs/dev/proxy.rst
+++ b/docs/dev/proxy.rst
diff --git a/mitmproxy/docs/dev/sslkeylogfile.rst b/docs/dev/sslkeylogfile.rst
index 04b86cc4..04b86cc4 100644
--- a/mitmproxy/docs/dev/sslkeylogfile.rst
+++ b/docs/dev/sslkeylogfile.rst
diff --git a/mitmproxy/docs/dev/testing.rst b/docs/dev/testing.rst
index e3b86bf3..e3b86bf3 100644
--- a/mitmproxy/docs/dev/testing.rst
+++ b/docs/dev/testing.rst
diff --git a/mitmproxy/docs/favicon.ico b/docs/favicon.ico
index 3c3b891c..3c3b891c 100644
--- a/mitmproxy/docs/favicon.ico
+++ b/docs/favicon.ico
Binary files differ
diff --git a/mitmproxy/docs/features/anticache.rst b/docs/features/anticache.rst
index 65d22bab..65d22bab 100644
--- a/mitmproxy/docs/features/anticache.rst
+++ b/docs/features/anticache.rst
diff --git a/mitmproxy/docs/features/clientreplay.rst b/docs/features/clientreplay.rst
index b0eb6792..b0eb6792 100644
--- a/mitmproxy/docs/features/clientreplay.rst
+++ b/docs/features/clientreplay.rst
diff --git a/mitmproxy/docs/features/filters.rst b/docs/features/filters.rst
index 509b5d6b..509b5d6b 100644
--- a/mitmproxy/docs/features/filters.rst
+++ b/docs/features/filters.rst
diff --git a/mitmproxy/docs/features/passthrough.rst b/docs/features/passthrough.rst
index b7b5df84..b7b5df84 100644
--- a/mitmproxy/docs/features/passthrough.rst
+++ b/docs/features/passthrough.rst
diff --git a/mitmproxy/docs/features/proxyauth.rst b/docs/features/proxyauth.rst
index bfd32fbd..bfd32fbd 100644
--- a/mitmproxy/docs/features/proxyauth.rst
+++ b/docs/features/proxyauth.rst
diff --git a/mitmproxy/docs/features/replacements.rst b/docs/features/replacements.rst
index 8f760866..8f760866 100644
--- a/mitmproxy/docs/features/replacements.rst
+++ b/docs/features/replacements.rst
diff --git a/mitmproxy/docs/features/responsestreaming.rst b/docs/features/responsestreaming.rst
index 8975c1f8..8975c1f8 100644
--- a/mitmproxy/docs/features/responsestreaming.rst
+++ b/docs/features/responsestreaming.rst
diff --git a/mitmproxy/docs/features/reverseproxy.rst b/docs/features/reverseproxy.rst
index 87065e73..87065e73 100644
--- a/mitmproxy/docs/features/reverseproxy.rst
+++ b/docs/features/reverseproxy.rst
diff --git a/mitmproxy/docs/features/serverreplay.rst b/docs/features/serverreplay.rst
index 261a1bd6..261a1bd6 100644
--- a/mitmproxy/docs/features/serverreplay.rst
+++ b/docs/features/serverreplay.rst
diff --git a/mitmproxy/docs/features/setheaders.rst b/docs/features/setheaders.rst
index cbc8b6a5..cbc8b6a5 100644
--- a/mitmproxy/docs/features/setheaders.rst
+++ b/docs/features/setheaders.rst
diff --git a/mitmproxy/docs/features/socksproxy.rst b/docs/features/socksproxy.rst
index 76d4cda9..76d4cda9 100644
--- a/mitmproxy/docs/features/socksproxy.rst
+++ b/docs/features/socksproxy.rst
diff --git a/mitmproxy/docs/features/sticky.rst b/docs/features/sticky.rst
index a79cbe8d..a79cbe8d 100644
--- a/mitmproxy/docs/features/sticky.rst
+++ b/docs/features/sticky.rst
diff --git a/mitmproxy/docs/features/tcpproxy.rst b/docs/features/tcpproxy.rst
index fd0746a2..fd0746a2 100644
--- a/mitmproxy/docs/features/tcpproxy.rst
+++ b/docs/features/tcpproxy.rst
diff --git a/mitmproxy/docs/features/upstreamcerts.rst b/docs/features/upstreamcerts.rst
index af2e2226..af2e2226 100644
--- a/mitmproxy/docs/features/upstreamcerts.rst
+++ b/docs/features/upstreamcerts.rst
diff --git a/mitmproxy/docs/features/upstreamproxy.rst b/docs/features/upstreamproxy.rst
index e06833c2..e06833c2 100644
--- a/mitmproxy/docs/features/upstreamproxy.rst
+++ b/docs/features/upstreamproxy.rst
diff --git a/mitmproxy/docs/howmitmproxy.rst b/docs/howmitmproxy.rst
index b0b187d3..b0b187d3 100644
--- a/mitmproxy/docs/howmitmproxy.rst
+++ b/docs/howmitmproxy.rst
diff --git a/mitmproxy/docs/index.rst b/docs/index.rst
index 4bca07d1..4bca07d1 100644
--- a/mitmproxy/docs/index.rst
+++ b/docs/index.rst
diff --git a/mitmproxy/docs/install.rst b/docs/install.rst
index 3300807b..3300807b 100644
--- a/mitmproxy/docs/install.rst
+++ b/docs/install.rst
diff --git a/mitmproxy/docs/introduction.rst b/docs/introduction.rst
index 058f39f9..058f39f9 100644
--- a/mitmproxy/docs/introduction.rst
+++ b/docs/introduction.rst
diff --git a/mitmproxy/docs/mitmdump.rst b/docs/mitmdump.rst
index d9b4a26b..d9b4a26b 100644
--- a/mitmproxy/docs/mitmdump.rst
+++ b/docs/mitmdump.rst
diff --git a/mitmproxy/docs/mitmproxy-docs.png b/docs/mitmproxy-docs.png
index 273fb8db..273fb8db 100644
--- a/mitmproxy/docs/mitmproxy-docs.png
+++ b/docs/mitmproxy-docs.png
Binary files differ
diff --git a/mitmproxy/docs/mitmproxy-long.png b/docs/mitmproxy-long.png
index f9397d1e..f9397d1e 100644
--- a/mitmproxy/docs/mitmproxy-long.png
+++ b/docs/mitmproxy-long.png
Binary files differ
diff --git a/mitmproxy/docs/mitmproxy.rst b/docs/mitmproxy.rst
index fa3b57c7..fa3b57c7 100644
--- a/mitmproxy/docs/mitmproxy.rst
+++ b/docs/mitmproxy.rst
diff --git a/mitmproxy/docs/modes.rst b/docs/modes.rst
index 2c87b2a3..2c87b2a3 100644
--- a/mitmproxy/docs/modes.rst
+++ b/docs/modes.rst
diff --git a/mitmproxy/docs/schematics/_explicit.graffle/data.plist b/docs/schematics/_explicit.graffle/data.plist
index bc5ef104..bc5ef104 100644
--- a/mitmproxy/docs/schematics/_explicit.graffle/data.plist
+++ b/docs/schematics/_explicit.graffle/data.plist
diff --git a/mitmproxy/docs/schematics/_explicit.graffle/image3.icns b/docs/schematics/_explicit.graffle/image3.icns
index 964df4b8..964df4b8 100644
--- a/mitmproxy/docs/schematics/_explicit.graffle/image3.icns
+++ b/docs/schematics/_explicit.graffle/image3.icns
Binary files differ
diff --git a/mitmproxy/docs/schematics/_explicit.graffle/image6.tiff b/docs/schematics/_explicit.graffle/image6.tiff
index bd6ed534..bd6ed534 100644
--- a/mitmproxy/docs/schematics/_explicit.graffle/image6.tiff
+++ b/docs/schematics/_explicit.graffle/image6.tiff
Binary files differ
diff --git a/mitmproxy/docs/schematics/_explicit_https.graffle/data.plist b/docs/schematics/_explicit_https.graffle/data.plist
index 306630a0..306630a0 100644
--- a/mitmproxy/docs/schematics/_explicit_https.graffle/data.plist
+++ b/docs/schematics/_explicit_https.graffle/data.plist
diff --git a/mitmproxy/docs/schematics/_explicit_https.graffle/image3.icns b/docs/schematics/_explicit_https.graffle/image3.icns
index 964df4b8..964df4b8 100644
--- a/mitmproxy/docs/schematics/_explicit_https.graffle/image3.icns
+++ b/docs/schematics/_explicit_https.graffle/image3.icns
Binary files differ
diff --git a/mitmproxy/docs/schematics/_explicit_https.graffle/image6.tiff b/docs/schematics/_explicit_https.graffle/image6.tiff
index bd6ed534..bd6ed534 100644
--- a/mitmproxy/docs/schematics/_explicit_https.graffle/image6.tiff
+++ b/docs/schematics/_explicit_https.graffle/image6.tiff
Binary files differ
diff --git a/mitmproxy/docs/schematics/_transparent.graffle/data.plist b/docs/schematics/_transparent.graffle/data.plist
index 722b4a44..722b4a44 100644
--- a/mitmproxy/docs/schematics/_transparent.graffle/data.plist
+++ b/docs/schematics/_transparent.graffle/data.plist
diff --git a/mitmproxy/docs/schematics/_transparent.graffle/image3.icns b/docs/schematics/_transparent.graffle/image3.icns
index 964df4b8..964df4b8 100644
--- a/mitmproxy/docs/schematics/_transparent.graffle/image3.icns
+++ b/docs/schematics/_transparent.graffle/image3.icns
Binary files differ
diff --git a/mitmproxy/docs/schematics/_transparent.graffle/image6.tiff b/docs/schematics/_transparent.graffle/image6.tiff
index bd6ed534..bd6ed534 100644
--- a/mitmproxy/docs/schematics/_transparent.graffle/image6.tiff
+++ b/docs/schematics/_transparent.graffle/image6.tiff
Binary files differ
diff --git a/mitmproxy/docs/schematics/_transparent_https.graffle/data.plist b/docs/schematics/_transparent_https.graffle/data.plist
index 9c1395d7..9c1395d7 100644
--- a/mitmproxy/docs/schematics/_transparent_https.graffle/data.plist
+++ b/docs/schematics/_transparent_https.graffle/data.plist
diff --git a/mitmproxy/docs/schematics/_transparent_https.graffle/image3.icns b/docs/schematics/_transparent_https.graffle/image3.icns
index 964df4b8..964df4b8 100644
--- a/mitmproxy/docs/schematics/_transparent_https.graffle/image3.icns
+++ b/docs/schematics/_transparent_https.graffle/image3.icns
Binary files differ
diff --git a/mitmproxy/docs/schematics/_transparent_https.graffle/image6.tiff b/docs/schematics/_transparent_https.graffle/image6.tiff
index bd6ed534..bd6ed534 100644
--- a/mitmproxy/docs/schematics/_transparent_https.graffle/image6.tiff
+++ b/docs/schematics/_transparent_https.graffle/image6.tiff
Binary files differ
diff --git a/mitmproxy/docs/schematics/architecture.pdf b/docs/schematics/architecture.pdf
index 77f5ad58..77f5ad58 100644
--- a/mitmproxy/docs/schematics/architecture.pdf
+++ b/docs/schematics/architecture.pdf
Binary files differ
diff --git a/mitmproxy/docs/schematics/architecture.png b/docs/schematics/architecture.png
index 67d6c718..67d6c718 100644
--- a/mitmproxy/docs/schematics/architecture.png
+++ b/docs/schematics/architecture.png
Binary files differ
diff --git a/mitmproxy/docs/schematics/architecture.vsdx b/docs/schematics/architecture.vsdx
index c4ff13d2..c4ff13d2 100644
--- a/mitmproxy/docs/schematics/architecture.vsdx
+++ b/docs/schematics/architecture.vsdx
Binary files differ
diff --git a/mitmproxy/docs/schematics/how-mitmproxy-works-explicit-https.png b/docs/schematics/how-mitmproxy-works-explicit-https.png
index 1f1ca023..1f1ca023 100644
--- a/mitmproxy/docs/schematics/how-mitmproxy-works-explicit-https.png
+++ b/docs/schematics/how-mitmproxy-works-explicit-https.png
Binary files differ
diff --git a/mitmproxy/docs/schematics/how-mitmproxy-works-explicit.png b/docs/schematics/how-mitmproxy-works-explicit.png
index c9ba26a7..c9ba26a7 100644
--- a/mitmproxy/docs/schematics/how-mitmproxy-works-explicit.png
+++ b/docs/schematics/how-mitmproxy-works-explicit.png
Binary files differ
diff --git a/mitmproxy/docs/schematics/how-mitmproxy-works-transparent-https.png b/docs/schematics/how-mitmproxy-works-transparent-https.png
index 559cddd2..559cddd2 100644
--- a/mitmproxy/docs/schematics/how-mitmproxy-works-transparent-https.png
+++ b/docs/schematics/how-mitmproxy-works-transparent-https.png
Binary files differ
diff --git a/mitmproxy/docs/schematics/how-mitmproxy-works-transparent.png b/docs/schematics/how-mitmproxy-works-transparent.png
index 3994d681..3994d681 100644
--- a/mitmproxy/docs/schematics/how-mitmproxy-works-transparent.png
+++ b/docs/schematics/how-mitmproxy-works-transparent.png
Binary files differ
diff --git a/mitmproxy/docs/schematics/proxy-modes-flowchart.png b/docs/schematics/proxy-modes-flowchart.png
index e9568dac..e9568dac 100644
--- a/mitmproxy/docs/schematics/proxy-modes-flowchart.png
+++ b/docs/schematics/proxy-modes-flowchart.png
Binary files differ
diff --git a/mitmproxy/docs/schematics/proxy-modes-regular.png b/docs/schematics/proxy-modes-regular.png
index 95bada08..95bada08 100644
--- a/mitmproxy/docs/schematics/proxy-modes-regular.png
+++ b/docs/schematics/proxy-modes-regular.png
Binary files differ
diff --git a/mitmproxy/docs/schematics/proxy-modes-reverse.png b/docs/schematics/proxy-modes-reverse.png
index 071d3fc8..071d3fc8 100644
--- a/mitmproxy/docs/schematics/proxy-modes-reverse.png
+++ b/docs/schematics/proxy-modes-reverse.png
Binary files differ
diff --git a/mitmproxy/docs/schematics/proxy-modes-transparent-1.png b/docs/schematics/proxy-modes-transparent-1.png
index 002e0e76..002e0e76 100644
--- a/mitmproxy/docs/schematics/proxy-modes-transparent-1.png
+++ b/docs/schematics/proxy-modes-transparent-1.png
Binary files differ
diff --git a/mitmproxy/docs/schematics/proxy-modes-transparent-2.png b/docs/schematics/proxy-modes-transparent-2.png
index 41997b05..41997b05 100644
--- a/mitmproxy/docs/schematics/proxy-modes-transparent-2.png
+++ b/docs/schematics/proxy-modes-transparent-2.png
Binary files differ
diff --git a/mitmproxy/docs/schematics/proxy-modes-transparent-3.png b/docs/schematics/proxy-modes-transparent-3.png
index ee26cb4f..ee26cb4f 100644
--- a/mitmproxy/docs/schematics/proxy-modes-transparent-3.png
+++ b/docs/schematics/proxy-modes-transparent-3.png
Binary files differ
diff --git a/mitmproxy/docs/schematics/proxy-modes-transparent-wrong.png b/docs/schematics/proxy-modes-transparent-wrong.png
index ca501e93..ca501e93 100644
--- a/mitmproxy/docs/schematics/proxy-modes-transparent-wrong.png
+++ b/docs/schematics/proxy-modes-transparent-wrong.png
Binary files differ
diff --git a/mitmproxy/docs/schematics/proxy-modes-upstream.png b/docs/schematics/proxy-modes-upstream.png
index d40a6494..d40a6494 100644
--- a/mitmproxy/docs/schematics/proxy-modes-upstream.png
+++ b/docs/schematics/proxy-modes-upstream.png
Binary files differ
diff --git a/mitmproxy/docs/schematics/proxy-modes.pdf b/docs/schematics/proxy-modes.pdf
index f07ea05e..f07ea05e 100644
--- a/mitmproxy/docs/schematics/proxy-modes.pdf
+++ b/docs/schematics/proxy-modes.pdf
Binary files differ
diff --git a/mitmproxy/docs/schematics/proxy-modes.vsdx b/docs/schematics/proxy-modes.vsdx
index 0128a142..0128a142 100644
--- a/mitmproxy/docs/schematics/proxy-modes.vsdx
+++ b/docs/schematics/proxy-modes.vsdx
Binary files differ
diff --git a/mitmproxy/docs/screenshots/firefox3-import.jpg b/docs/screenshots/firefox3-import.jpg
index 47fcd672..47fcd672 100644
--- a/mitmproxy/docs/screenshots/firefox3-import.jpg
+++ b/docs/screenshots/firefox3-import.jpg
Binary files differ
diff --git a/mitmproxy/docs/screenshots/firefox3-trust.jpg b/docs/screenshots/firefox3-trust.jpg
index 50a2f341..50a2f341 100644
--- a/mitmproxy/docs/screenshots/firefox3-trust.jpg
+++ b/docs/screenshots/firefox3-trust.jpg
Binary files differ
diff --git a/mitmproxy/docs/screenshots/firefox3.jpg b/docs/screenshots/firefox3.jpg
index 6c4613b6..6c4613b6 100644
--- a/mitmproxy/docs/screenshots/firefox3.jpg
+++ b/docs/screenshots/firefox3.jpg
Binary files differ
diff --git a/mitmproxy/docs/screenshots/ios-gateway.png b/docs/screenshots/ios-gateway.png
index 2489cba3..2489cba3 100644
--- a/mitmproxy/docs/screenshots/ios-gateway.png
+++ b/docs/screenshots/ios-gateway.png
Binary files differ
diff --git a/mitmproxy/docs/screenshots/ios-installed.png b/docs/screenshots/ios-installed.png
index 2071e441..2071e441 100644
--- a/mitmproxy/docs/screenshots/ios-installed.png
+++ b/docs/screenshots/ios-installed.png
Binary files differ
diff --git a/mitmproxy/docs/screenshots/ios-manual.png b/docs/screenshots/ios-manual.png
index 3977acfe..3977acfe 100644
--- a/mitmproxy/docs/screenshots/ios-manual.png
+++ b/docs/screenshots/ios-manual.png
Binary files differ
diff --git a/mitmproxy/docs/screenshots/ios-profile.png b/docs/screenshots/ios-profile.png
index 5bcd5a0d..5bcd5a0d 100644
--- a/mitmproxy/docs/screenshots/ios-profile.png
+++ b/docs/screenshots/ios-profile.png
Binary files differ
diff --git a/mitmproxy/docs/screenshots/ios-reverse.png b/docs/screenshots/ios-reverse.png
index 6ab5b7c0..6ab5b7c0 100644
--- a/mitmproxy/docs/screenshots/ios-reverse.png
+++ b/docs/screenshots/ios-reverse.png
Binary files differ
diff --git a/mitmproxy/docs/screenshots/ios-warning.png b/docs/screenshots/ios-warning.png
index d882c514..d882c514 100644
--- a/mitmproxy/docs/screenshots/ios-warning.png
+++ b/docs/screenshots/ios-warning.png
Binary files differ
diff --git a/mitmproxy/docs/screenshots/mitmproxy-flowview.png b/docs/screenshots/mitmproxy-flowview.png
index 154963fe..154963fe 100644
--- a/mitmproxy/docs/screenshots/mitmproxy-flowview.png
+++ b/docs/screenshots/mitmproxy-flowview.png
Binary files differ
diff --git a/mitmproxy/docs/screenshots/mitmproxy-intercept-filt.png b/docs/screenshots/mitmproxy-intercept-filt.png
index 60556ee7..60556ee7 100644
--- a/mitmproxy/docs/screenshots/mitmproxy-intercept-filt.png
+++ b/docs/screenshots/mitmproxy-intercept-filt.png
Binary files differ
diff --git a/mitmproxy/docs/screenshots/mitmproxy-intercept-mid.png b/docs/screenshots/mitmproxy-intercept-mid.png
index d5b03922..d5b03922 100644
--- a/mitmproxy/docs/screenshots/mitmproxy-intercept-mid.png
+++ b/docs/screenshots/mitmproxy-intercept-mid.png
Binary files differ
diff --git a/mitmproxy/docs/screenshots/mitmproxy-intercept-options.png b/docs/screenshots/mitmproxy-intercept-options.png
index 8dc4ad2c..8dc4ad2c 100644
--- a/mitmproxy/docs/screenshots/mitmproxy-intercept-options.png
+++ b/docs/screenshots/mitmproxy-intercept-options.png
Binary files differ
diff --git a/mitmproxy/docs/screenshots/mitmproxy-intercept-result.png b/docs/screenshots/mitmproxy-intercept-result.png
index 7d9f5c94..7d9f5c94 100644
--- a/mitmproxy/docs/screenshots/mitmproxy-intercept-result.png
+++ b/docs/screenshots/mitmproxy-intercept-result.png
Binary files differ
diff --git a/mitmproxy/docs/screenshots/mitmproxy-kveditor-editmode.png b/docs/screenshots/mitmproxy-kveditor-editmode.png
index a8315ee5..a8315ee5 100644
--- a/mitmproxy/docs/screenshots/mitmproxy-kveditor-editmode.png
+++ b/docs/screenshots/mitmproxy-kveditor-editmode.png
Binary files differ
diff --git a/mitmproxy/docs/screenshots/mitmproxy-kveditor.png b/docs/screenshots/mitmproxy-kveditor.png
index 144b9701..144b9701 100644
--- a/mitmproxy/docs/screenshots/mitmproxy-kveditor.png
+++ b/docs/screenshots/mitmproxy-kveditor.png
Binary files differ
diff --git a/mitmproxy/docs/screenshots/mitmproxy.png b/docs/screenshots/mitmproxy.png
index 42a10e32..42a10e32 100644
--- a/mitmproxy/docs/screenshots/mitmproxy.png
+++ b/docs/screenshots/mitmproxy.png
Binary files differ
diff --git a/mitmproxy/docs/screenshots/osx-addcert-alwaystrust.png b/docs/screenshots/osx-addcert-alwaystrust.png
index 4c5cc704..4c5cc704 100644
--- a/mitmproxy/docs/screenshots/osx-addcert-alwaystrust.png
+++ b/docs/screenshots/osx-addcert-alwaystrust.png
Binary files differ
diff --git a/mitmproxy/docs/screenshots/win7-certstore-trustedroot.png b/docs/screenshots/win7-certstore-trustedroot.png
index e15a87f5..e15a87f5 100644
--- a/mitmproxy/docs/screenshots/win7-certstore-trustedroot.png
+++ b/docs/screenshots/win7-certstore-trustedroot.png
Binary files differ
diff --git a/mitmproxy/docs/screenshots/win7-certstore.png b/docs/screenshots/win7-certstore.png
index f8ce54bd..f8ce54bd 100644
--- a/mitmproxy/docs/screenshots/win7-certstore.png
+++ b/docs/screenshots/win7-certstore.png
Binary files differ
diff --git a/mitmproxy/docs/screenshots/win7-wizard.png b/docs/screenshots/win7-wizard.png
index eff6ad09..eff6ad09 100644
--- a/mitmproxy/docs/screenshots/win7-wizard.png
+++ b/docs/screenshots/win7-wizard.png
Binary files differ
diff --git a/mitmproxy/docs/screenshots/winpythoninstaller.jpg b/docs/screenshots/winpythoninstaller.jpg
index 0473c66a..0473c66a 100644
--- a/mitmproxy/docs/screenshots/winpythoninstaller.jpg
+++ b/docs/screenshots/winpythoninstaller.jpg
Binary files differ
diff --git a/mitmproxy/docs/scripting/inlinescripts.rst b/docs/scripting/inlinescripts.rst
index 89bff2c1..89bff2c1 100644
--- a/mitmproxy/docs/scripting/inlinescripts.rst
+++ b/docs/scripting/inlinescripts.rst
diff --git a/mitmproxy/docs/scripting/mitmproxy.rst b/docs/scripting/mitmproxy.rst
index 1626eb5a..1626eb5a 100644
--- a/mitmproxy/docs/scripting/mitmproxy.rst
+++ b/docs/scripting/mitmproxy.rst
diff --git a/mitmproxy/docs/transparent.rst b/docs/transparent.rst
index eb77c76c..eb77c76c 100644
--- a/mitmproxy/docs/transparent.rst
+++ b/docs/transparent.rst
diff --git a/mitmproxy/docs/transparent/linux.rst b/docs/transparent/linux.rst
index ce79128c..ce79128c 100644
--- a/mitmproxy/docs/transparent/linux.rst
+++ b/docs/transparent/linux.rst
diff --git a/mitmproxy/docs/transparent/osx.rst b/docs/transparent/osx.rst
index 1791105f..1791105f 100644
--- a/mitmproxy/docs/transparent/osx.rst
+++ b/docs/transparent/osx.rst
diff --git a/mitmproxy/docs/tutorials/30second.rst b/docs/tutorials/30second.rst
index 4c8bf326..4c8bf326 100644
--- a/mitmproxy/docs/tutorials/30second.rst
+++ b/docs/tutorials/30second.rst
diff --git a/mitmproxy/docs/tutorials/gamecenter.rst b/docs/tutorials/gamecenter.rst
index 9dce5df8..9dce5df8 100644
--- a/mitmproxy/docs/tutorials/gamecenter.rst
+++ b/docs/tutorials/gamecenter.rst
diff --git a/mitmproxy/docs/tutorials/leaderboard.png b/docs/tutorials/leaderboard.png
index c1be8df5..c1be8df5 100644
--- a/mitmproxy/docs/tutorials/leaderboard.png
+++ b/docs/tutorials/leaderboard.png
Binary files differ
diff --git a/mitmproxy/docs/tutorials/one.png b/docs/tutorials/one.png
index 78a636cf..78a636cf 100644
--- a/mitmproxy/docs/tutorials/one.png
+++ b/docs/tutorials/one.png
Binary files differ
diff --git a/mitmproxy/docs/tutorials/supermega.png b/docs/tutorials/supermega.png
index d416f71f..d416f71f 100644
--- a/mitmproxy/docs/tutorials/supermega.png
+++ b/docs/tutorials/supermega.png
Binary files differ
diff --git a/mitmproxy/docs/tutorials/transparent-dhcp.rst b/docs/tutorials/transparent-dhcp.rst
index ce285b63..ce285b63 100644
--- a/mitmproxy/docs/tutorials/transparent-dhcp.rst
+++ b/docs/tutorials/transparent-dhcp.rst
diff --git a/mitmproxy/docs/tutorials/transparent-dhcp/step1_proxy.png b/docs/tutorials/transparent-dhcp/step1_proxy.png
index a0c94484..a0c94484 100644
--- a/mitmproxy/docs/tutorials/transparent-dhcp/step1_proxy.png
+++ b/docs/tutorials/transparent-dhcp/step1_proxy.png
Binary files differ
diff --git a/mitmproxy/docs/tutorials/transparent-dhcp/step1_vbox_eth0.png b/docs/tutorials/transparent-dhcp/step1_vbox_eth0.png
index 4b7b4e9b..4b7b4e9b 100644
--- a/mitmproxy/docs/tutorials/transparent-dhcp/step1_vbox_eth0.png
+++ b/docs/tutorials/transparent-dhcp/step1_vbox_eth0.png
Binary files differ
diff --git a/mitmproxy/docs/tutorials/transparent-dhcp/step1_vbox_eth1.png b/docs/tutorials/transparent-dhcp/step1_vbox_eth1.png
index b994d4cb..b994d4cb 100644
--- a/mitmproxy/docs/tutorials/transparent-dhcp/step1_vbox_eth1.png
+++ b/docs/tutorials/transparent-dhcp/step1_vbox_eth1.png
Binary files differ
diff --git a/mitmproxy/docs/tutorials/transparent-dhcp/step2_proxied_vm.png b/docs/tutorials/transparent-dhcp/step2_proxied_vm.png
index 2046cc57..2046cc57 100644
--- a/mitmproxy/docs/tutorials/transparent-dhcp/step2_proxied_vm.png
+++ b/docs/tutorials/transparent-dhcp/step2_proxied_vm.png
Binary files differ
diff --git a/mitmproxy/examples/README b/examples/README
index cf5c4d7d..cf5c4d7d 100644
--- a/mitmproxy/examples/README
+++ b/examples/README
diff --git a/mitmproxy/examples/add_header.py b/examples/add_header.py
index cf1b53cc..cf1b53cc 100644
--- a/mitmproxy/examples/add_header.py
+++ b/examples/add_header.py
diff --git a/mitmproxy/examples/change_upstream_proxy.py b/examples/change_upstream_proxy.py
index 9c454897..9c454897 100644
--- a/mitmproxy/examples/change_upstream_proxy.py
+++ b/examples/change_upstream_proxy.py
diff --git a/mitmproxy/examples/custom_contentviews.py b/examples/custom_contentviews.py
index 776ba99d..776ba99d 100644
--- a/mitmproxy/examples/custom_contentviews.py
+++ b/examples/custom_contentviews.py
diff --git a/mitmproxy/examples/dns_spoofing.py b/examples/dns_spoofing.py
index 7eb79695..7eb79695 100644
--- a/mitmproxy/examples/dns_spoofing.py
+++ b/examples/dns_spoofing.py
diff --git a/mitmproxy/examples/dup_and_replay.py b/examples/dup_and_replay.py
index 9ba91d3b..9ba91d3b 100644
--- a/mitmproxy/examples/dup_and_replay.py
+++ b/examples/dup_and_replay.py
diff --git a/mitmproxy/examples/filt.py b/examples/filt.py
index f99b675c..f99b675c 100644
--- a/mitmproxy/examples/filt.py
+++ b/examples/filt.py
diff --git a/mitmproxy/examples/flowbasic b/examples/flowbasic
index 4a87b86a..4a87b86a 100644
--- a/mitmproxy/examples/flowbasic
+++ b/examples/flowbasic
diff --git a/mitmproxy/examples/flowwriter.py b/examples/flowwriter.py
index 8fb8cc60..8fb8cc60 100644
--- a/mitmproxy/examples/flowwriter.py
+++ b/examples/flowwriter.py
diff --git a/mitmproxy/examples/har_extractor.py b/examples/har_extractor.py
index 4e905438..4e905438 100644
--- a/mitmproxy/examples/har_extractor.py
+++ b/examples/har_extractor.py
diff --git a/mitmproxy/examples/iframe_injector.py b/examples/iframe_injector.py
index fc38b136..fc38b136 100644
--- a/mitmproxy/examples/iframe_injector.py
+++ b/examples/iframe_injector.py
diff --git a/mitmproxy/examples/mitmproxywrapper.py b/examples/mitmproxywrapper.py
index 7ea10715..7ea10715 100644
--- a/mitmproxy/examples/mitmproxywrapper.py
+++ b/examples/mitmproxywrapper.py
diff --git a/mitmproxy/examples/modify_form.py b/examples/modify_form.py
index 3e9d15c0..3e9d15c0 100644
--- a/mitmproxy/examples/modify_form.py
+++ b/examples/modify_form.py
diff --git a/mitmproxy/examples/modify_querystring.py b/examples/modify_querystring.py
index 7f31a48f..7f31a48f 100644
--- a/mitmproxy/examples/modify_querystring.py
+++ b/examples/modify_querystring.py
diff --git a/mitmproxy/examples/modify_response_body.py b/examples/modify_response_body.py
index 88f69e15..88f69e15 100644
--- a/mitmproxy/examples/modify_response_body.py
+++ b/examples/modify_response_body.py
diff --git a/mitmproxy/examples/nonblocking.py b/examples/nonblocking.py
index 41674b2a..41674b2a 100644
--- a/mitmproxy/examples/nonblocking.py
+++ b/examples/nonblocking.py
diff --git a/pathod/examples/libpathod_pathoc.py b/examples/pathod/libpathod_pathoc.py
index 587c0e4c..587c0e4c 100644
--- a/pathod/examples/libpathod_pathoc.py
+++ b/examples/pathod/libpathod_pathoc.py
diff --git a/pathod/examples/test_context.py b/examples/pathod/test_context.py
index 8db4331f..8db4331f 100644
--- a/pathod/examples/test_context.py
+++ b/examples/pathod/test_context.py
diff --git a/pathod/examples/test_setup.py b/examples/pathod/test_setup.py
index 5dbc456d..5dbc456d 100644
--- a/pathod/examples/test_setup.py
+++ b/examples/pathod/test_setup.py
diff --git a/pathod/examples/test_setupall.py b/examples/pathod/test_setupall.py
index cb84b7b2..cb84b7b2 100644
--- a/pathod/examples/test_setupall.py
+++ b/examples/pathod/test_setupall.py
diff --git a/mitmproxy/examples/proxapp.py b/examples/proxapp.py
index 4d8e7b58..4d8e7b58 100644
--- a/mitmproxy/examples/proxapp.py
+++ b/examples/proxapp.py
diff --git a/mitmproxy/examples/read_dumpfile b/examples/read_dumpfile
index 56746bb8..56746bb8 100644
--- a/mitmproxy/examples/read_dumpfile
+++ b/examples/read_dumpfile
diff --git a/mitmproxy/examples/redirect_requests.py b/examples/redirect_requests.py
index c0a0ccba..c0a0ccba 100644
--- a/mitmproxy/examples/redirect_requests.py
+++ b/examples/redirect_requests.py
diff --git a/mitmproxy/examples/sslstrip.py b/examples/sslstrip.py
index 369427a2..369427a2 100644
--- a/mitmproxy/examples/sslstrip.py
+++ b/examples/sslstrip.py
diff --git a/mitmproxy/examples/stickycookies b/examples/stickycookies
index 8f11de8d..8f11de8d 100644
--- a/mitmproxy/examples/stickycookies
+++ b/examples/stickycookies
diff --git a/mitmproxy/examples/stream.py b/examples/stream.py
index 3adbe437..3adbe437 100644
--- a/mitmproxy/examples/stream.py
+++ b/examples/stream.py
diff --git a/mitmproxy/examples/stream_modify.py b/examples/stream_modify.py
index aa395c03..aa395c03 100644
--- a/mitmproxy/examples/stream_modify.py
+++ b/examples/stream_modify.py
diff --git a/mitmproxy/examples/stub.py b/examples/stub.py
index 516b71a5..516b71a5 100644
--- a/mitmproxy/examples/stub.py
+++ b/examples/stub.py
diff --git a/mitmproxy/examples/tcp_message.py b/examples/tcp_message.py
index c63368e4..c63368e4 100644
--- a/mitmproxy/examples/tcp_message.py
+++ b/examples/tcp_message.py
diff --git a/mitmproxy/examples/tls_passthrough.py b/examples/tls_passthrough.py
index 8c8fa4eb..8c8fa4eb 100644
--- a/mitmproxy/examples/tls_passthrough.py
+++ b/examples/tls_passthrough.py
diff --git a/mitmproxy/examples/upsidedownternet.py b/examples/upsidedownternet.py
index b7489cb6..b7489cb6 100644
--- a/mitmproxy/examples/upsidedownternet.py
+++ b/examples/upsidedownternet.py
diff --git a/issue_template.md b/issue_template.md
new file mode 100644
index 00000000..01b736be
--- /dev/null
+++ b/issue_template.md
@@ -0,0 +1,28 @@
+##### Steps to reproduce the problem:
+1. Launch mitmproxy
+2. Press X
+3. Click Y
+
+##### What is the expected behavior?
+
+It should display Z.
+
+##### What went wrong?
+
+It crashed with this error/trace: ...
+
+##### Any other comments?
+
+None.
+
+---
+
+mitmproxy version: (e.g.: 0.16, git commit hash)
+
+mitmproxy installed from: (e.g.: pip, binary package, source)
+
+Operating System: (e.g.: Windows, OSX, Linux, with specific version)
+
+OpenSSL version: (e.g.: 1.0.2f, run `openssl version` in your shell)
+
+pyOpenSSL version: (e.g.: 0.15.1, run `import OpenSSL; print(OpenSSL.__version__)` in Python)
diff --git a/mitmproxy/MANIFEST.in b/mitmproxy/MANIFEST.in
deleted file mode 100644
index 54b57382..00000000
--- a/mitmproxy/MANIFEST.in
+++ /dev/null
@@ -1,2 +0,0 @@
-graft mitmproxy
-recursive-exclude * *.pyc *.pyo *.swo *.swp *.map \ No newline at end of file
diff --git a/mitmproxy/mitmproxy/console/flowview.py b/mitmproxy/mitmproxy/console/flowview.py
index d2b98b68..f74ab140 100644
--- a/mitmproxy/mitmproxy/console/flowview.py
+++ b/mitmproxy/mitmproxy/console/flowview.py
@@ -69,7 +69,7 @@ def _mkhelp():
),
("M", "change default body display mode"),
("p", "previous flow"),
- ("P", "copy response(content/headers) to clipboard"),
+ ("P", "copy request/response (content/headers) to clipboard"),
("r", "replay request"),
("V", "revert changes to request"),
("v", "view body in external viewer"),
@@ -193,8 +193,11 @@ class FlowView(tabs.Tabs):
def _get_content_view(self, viewmode, message, max_lines, _):
try:
+ query = None
+ if isinstance(message, HTTPRequest):
+ query = message.query
description, lines = contentviews.get_content_view(
- viewmode, message.content, headers=message.headers
+ viewmode, message.content, headers=message.headers, query=query
)
except ContentViewException:
s = "Content viewer failed: \n" + traceback.format_exc()
diff --git a/mitmproxy/mitmproxy/contentviews.py b/mitmproxy/mitmproxy/contentviews.py
index c0652c18..5335b59c 100644
--- a/mitmproxy/mitmproxy/contentviews.py
+++ b/mitmproxy/mitmproxy/contentviews.py
@@ -8,7 +8,8 @@ in the future, e.g. to decode protobuf messages sent as WebSocket frames.
Thus, the View API is very minimalistic. The only arguments are `data` and `**metadata`,
where `data` is the actual content (as bytes). The contents on metadata depend on the protocol in
-use. For HTTP, the message headers are passed as the ``headers`` keyword argument.
+use. For HTTP, the message headers are passed as the ``headers`` keyword argument. For HTTP
+requests, the query parameters are passed as the ``query`` keyword argument.
"""
from __future__ import (absolute_import, print_function, division)
@@ -118,15 +119,19 @@ class ViewAuto(View):
def __call__(self, data, **metadata):
headers = metadata.get("headers", {})
ctype = headers.get("content-type")
- if ctype:
+ if data and ctype:
ct = parse_content_type(ctype) if ctype else None
ct = "%s/%s" % (ct[0], ct[1])
if ct in content_types_map:
return content_types_map[ct][0](data, **metadata)
elif utils.isXML(data):
return get("XML")(data, **metadata)
- if utils.isMostlyBin(data):
+ if metadata.get("query"):
+ return get("Query")(data, **metadata)
+ if data and utils.isMostlyBin(data):
return get("Hex")(data)
+ if not data:
+ return "No content", []
return get("Raw")(data)
@@ -460,6 +465,19 @@ class ViewProtobuf(View):
return "Protobuf", format_text(decoded)
+class ViewQuery(View):
+ name = "Query"
+ prompt = ("query", "q")
+ content_types = []
+
+ def __call__(self, data, **metadata):
+ query = metadata.get("query")
+ if query:
+ return "Query", format_dict(query)
+ else:
+ return "Query", format_text("")
+
+
class ViewWBXML(View):
name = "WBXML"
prompt = ("wbxml", "w")
@@ -541,6 +559,7 @@ add(ViewCSS())
add(ViewURLEncoded())
add(ViewMultipart())
add(ViewImage())
+add(ViewQuery())
if pyamf:
add(ViewAMF())
@@ -577,8 +596,6 @@ def get_content_view(viewmode, data, **metadata):
Raises:
ContentViewException, if the content view threw an error.
"""
- if not data:
- return "No content", []
msg = []
headers = metadata.get("headers", {})
diff --git a/mitmproxy/mitmproxy/protocol/http2.py b/mitmproxy/mitmproxy/protocol/http2.py
index c121637c..3fbc500a 100644
--- a/mitmproxy/mitmproxy/protocol/http2.py
+++ b/mitmproxy/mitmproxy/protocol/http2.py
@@ -9,8 +9,6 @@ from netlib.exceptions import HttpException
from netlib.http import Headers
from netlib.utils import http2_read_raw_frame
-import hyperframe
-import h2
from h2.connection import H2Connection
from h2.events import *
@@ -232,19 +230,6 @@ class Http2Layer(Layer):
stream.zombie = time.time()
return
- frame, _ = hyperframe.frame.Frame.parse_frame_header(raw_frame[:9])
-
- if is_server:
- list = self.server_reset_streams
- else:
- list = self.client_reset_streams
- if frame.stream_id in list:
- # this frame belongs to a reset stream - just ignore it
- if isinstance(frame, hyperframe.frame.HeadersFrame) or isinstance(frame, hyperframe.frame.ContinuationFrame):
- # we need to keep the hpack-decoder happy too
- source_conn.h2.decoder.decode(raw_frame[9:])
- continue
-
events = source_conn.h2.receive_data(raw_frame)
source_conn.send(source_conn.h2.data_to_send())
diff --git a/mitmproxy/setup.py b/mitmproxy/setup.py
index 600702d9..5f8c6d42 100644
--- a/mitmproxy/setup.py
+++ b/mitmproxy/setup.py
@@ -54,7 +54,7 @@ setup(
# It is not considered best practice to use install_requires to pin dependencies to specific versions.
install_requires=[
"netlib=={}".format(version.VERSION),
- "h2>=2.1.0, <2.2",
+ "h2>=2.1.2, <3.0",
"tornado>=4.3, <4.4",
"configargparse>=0.10, <0.11",
"pyperclip>=1.5.22, <1.6",
diff --git a/pathod/CHANGELOG b/pathod/CHANGELOG
deleted file mode 100644
index 2de445b4..00000000
--- a/pathod/CHANGELOG
+++ /dev/null
@@ -1,83 +0,0 @@
-7 November 2014: pathod 0.11:
-
- * Hugely improved SSL support, including dynamic generation of certificates
- using the mitproxy cacert
- * pathoc -S dumps information on the remote SSL certificate chain
- * Big improvements to fuzzing, including random spec selection and memoization to avoid repeating randomly generated patterns
- * Reflected patterns, allowing you to embed a pathod server response specification in a pathoc request, resolving both on client side. This makes fuzzing proxies and other intermediate systems much better.
-
-
-25 August 2013: pathod 0.9.2:
-
- * Adapt to interface changes in netlib
-
-
-15 May 2013: pathod 0.9 (version synced with mitmproxy):
-
- * Pathod proxy mode. You can now configure clients to use pathod as an
- HTTP/S proxy.
-
- * Pathoc proxy support, including using CONNECT to tunnel directly to
- targets.
-
- * Pathoc client certificate support.
-
- * API improvements, bugfixes.
-
-
-16 November 2012: pathod 0.3:
-
- A release focusing on shoring up our fuzzing capabilities, especially with
- pathoc.
-
- * pathoc -q and -r options, output full request and response text.
-
- * pathod -q and -r options, add full request and response text to pathod's
- log buffer.
-
- * pathoc and pathod -x option, makes -q and -r options log in hex dump
- format.
-
- * pathoc -C option, specify response codes to ignore.
-
- * pathoc -T option, instructs pathoc to ignore timeouts.
-
- * pathoc -o option, a one-shot mode that exits after the first non-ignored
- response.
-
- * pathoc and pathod -e option, which explains the resulting message by
- expanding random and generated portions, and logging a reproducible
- specification.
-
- * Streamline the specification langauge. HTTP response message is now
- specified using the "r" mnemonic.
-
- * Add a "u" mnemonic for specifying User-Agent strings. Add a set of
- standard user-agent strings accessible through shortcuts.
-
- * Major internal refactoring and cleanup.
-
- * Many bugfixes.
-
-
-22 August 2012: pathod 0.2:
-
- * Add pathoc, a pathological HTTP client.
-
- * Add libpathod.test, a truss for using pathod in unit tests.
-
- * Add an injection operator to the specification language.
-
- * Allow Python escape sequences in value literals.
-
- * Allow execution of requests and responses from file, using the new + operator.
-
- * Add daemonization to Pathod, and make it more robust for public-facing use.
-
- * Let pathod pick an arbitrary open port if -p 0 is specified.
-
- * Move from Tornado to netlib, the network library written for mitmproxy.
-
- * Move the web application to Flask.
-
- * Massively expand the documentation.
diff --git a/pathod/MANIFEST.in b/pathod/MANIFEST.in
deleted file mode 100644
index a83fa08f..00000000
--- a/pathod/MANIFEST.in
+++ /dev/null
@@ -1,2 +0,0 @@
-graft pathod
-recursive-exclude * *.pyc *.pyo *.swo *.swp *.map \ No newline at end of file
diff --git a/release/.gitignore b/release/.gitignore
new file mode 100644
index 00000000..2247d5f9
--- /dev/null
+++ b/release/.gitignore
@@ -0,0 +1,2 @@
+/build
+/dist
diff --git a/release/rtool.py b/release/rtool.py
index 2ebb3a1c..d01ee741 100644..100755
--- a/release/rtool.py
+++ b/release/rtool.py
@@ -250,7 +250,7 @@ def bdist(ctx, use_existing_wheels, pyinstaller_version):
"--clean",
"--workpath", PYINSTALLER_TEMP,
"--distpath", PYINSTALLER_DIST,
- # This is PyInstaller, so setting a
+ # This is PyInstaller, so setting a
# different log level obviously breaks it :-)
# "--log-level", "WARN",
spec
diff --git a/test/mitmproxy/fuzzing/.env b/test/mitmproxy/fuzzing/.env
index 82ae6a8d..8923b8ae 100644
--- a/test/mitmproxy/fuzzing/.env
+++ b/test/mitmproxy/fuzzing/.env
@@ -1,6 +1,4 @@
-
-MITMDUMP=../../mitmdump
-PATHOD=../../../pathod/pathod
-PATHOC=../../../pathod/pathoc
-FUZZ_SETTINGS=-remTt 1 -n 0
-
+MITMDUMP=mitmdump
+PATHOD=pathod
+PATHOC=pathoc
+FUZZ_SETTINGS="-remTt 1 -n 0"
diff --git a/test/mitmproxy/fuzzing/straight_stream_patterns b/test/mitmproxy/fuzzing/straight_stream_patterns
index 93a066e6..235f2cc3 100644
--- a/test/mitmproxy/fuzzing/straight_stream_patterns
+++ b/test/mitmproxy/fuzzing/straight_stream_patterns
@@ -9,7 +9,6 @@ get:'http://localhost:9999/p/':s'200:b"foo":ir,"\n"'
get:'http://localhost:9999/p/':s'200:b"foo":ir,"a"'
get:'http://localhost:9999/p/':s'200:b"foo":ir,"9"'
get:'http://localhost:9999/p/':s'200:b"foo":ir,":"'
-get:'http://localhost:9999/p/':s"200:b'foo':ir,'\"'"
get:'http://localhost:9999/p/':s'200:b"foo":ir,"-"'
get:'http://localhost:9999/p/':s'200:b"foo":dr'
diff --git a/test/mitmproxy/test_contentview.py b/test/mitmproxy/test_contentview.py
index 7f1d735e..c00afa5f 100644
--- a/test/mitmproxy/test_contentview.py
+++ b/test/mitmproxy/test_contentview.py
@@ -1,5 +1,6 @@
from mitmproxy.exceptions import ContentViewException
from netlib.http import Headers
+from netlib.odict import ODict
import netlib.utils
from netlib import encoding
@@ -45,6 +46,19 @@ class TestContentView:
)
assert f[0].startswith("XML")
+ f = v(
+ "",
+ headers=Headers()
+ )
+ assert f[0] == "No content"
+
+ f = v(
+ "",
+ headers=Headers(),
+ query=ODict([("foo", "bar")]),
+ )
+ assert f[0] == "Query"
+
def test_view_urlencoded(self):
d = netlib.utils.urlencode([("one", "two"), ("three", "four")])
v = cv.ViewURLEncoded()
@@ -158,6 +172,13 @@ Larry
h = Headers(content_type="unparseable")
assert not view(v, headers=h)
+ def test_view_query(self):
+ d = ""
+ v = cv.ViewQuery()
+ f = v(d, query=ODict([("foo", "bar")]))
+ assert f[0] == "Query"
+ assert [x for x in f[1]] == [[("header", "foo: "), ("text", "bar")]]
+
def test_get_content_view(self):
r = cv.get_content_view(
cv.get("Raw"),
diff --git a/test/mitmproxy/test_examples.py b/test/mitmproxy/test_examples.py
index 6920c8e9..54e6e753 100644
--- a/test/mitmproxy/test_examples.py
+++ b/test/mitmproxy/test_examples.py
@@ -5,7 +5,7 @@ from . import tservers
def test_load_scripts():
- example_dir = utils.Data("mitmproxy").path("../examples")
+ example_dir = utils.Data("mitmproxy").path("../../examples")
scripts = glob.glob("%s/*.py" % example_dir)
tmaster = tservers.TestMaster(config.ProxyConfig())