Commit Graph

1089 Commits

Author SHA1 Message Date
Doug Freed
48b6964552 console: increase eventlog size limit to 10000 2016-12-12 15:41:31 +01:00
Aldo Cortesi
5e2a80fba1 Minor fixes 2016-12-12 12:18:33 +13:00
Maximilian Hils
d854e08653 [web] various fixes 2016-12-12 00:08:29 +01:00
Aldo Cortesi
a4ac5b158f Merge branch 'master' into optsave 2016-12-12 11:13:32 +13:00
Aldo Cortesi
6dcd620c4a Merge pull request #1838 from mhils/http2-is-difficult
Disable HTTP/2 by default, add explicit on/off switches
2016-12-12 09:17:06 +13:00
Aldo Cortesi
a99bf0814c console: clean path prompt handling
- Don't trigger callback if no path is specified
- Expand userdir centrally
- Catch IO errors from callbacks and turn them into status messages
2016-12-12 09:13:43 +13:00
Maximilian Hils
a7d7ad2880 Merge pull request #1837 from mhils/1809
Fix #1809
2016-12-11 21:13:20 +01:00
Aldo Cortesi
f8032bf85a Replacements and SetHeaders are both defined as text in Options
Bytes don't play well with our config serialization or command-line args.
2016-12-12 07:39:59 +13:00
Aldo Cortesi
ca33bea296 Extend type checker validate Sequence specs 2016-12-12 07:39:59 +13:00
Aldo Cortesi
c5717b17df console: add saving of config file 2016-12-12 07:39:59 +13:00
Maximilian Hils
00ae4d3f6e fix version sourcing in setup.py 2016-12-11 17:50:46 +01:00
Maximilian Hils
b92980efec [web] show proxy address, add websocket toggle 2016-12-11 15:26:49 +01:00
Maximilian Hils
b62b92eabe Merge pull request #1840 from mhils/1829
fix #1829
2016-12-11 14:50:20 +01:00
Maximilian Hils
bdba885922 fix #1829 2016-12-11 13:22:26 +01:00
Maximilian Hils
265ab7bf26 fix #1830 2016-12-11 13:11:02 +01:00
Maximilian Hils
b24d9654a9 disable http2 by default, add explicit on/off switches
As long as major HTTP/2 implementers fail to implement the spec correctly,
we need to disable HTTP/2 by default. We expect this to be fixed with
the next release and re-enabled by default.

https://github.com/mitmproxy/mitmproxy/issues/1745
https://github.com/mitmproxy/mitmproxy/issues/1824
2016-12-11 00:29:35 +01:00
Maximilian Hils
782c66eac2 fix #1809 2016-12-10 21:36:31 +01:00
Aldo Cortesi
8112bce424 Merge pull request #1831 from mhils/contentviews
Split contentviews.py into mitmproxy.contentviews
2016-12-11 07:33:27 +13:00
Maximilian Hils
b4a1bb44d9 minor fixes 2016-12-10 17:18:21 +01:00
Maximilian Hils
8df61c927e Merge pull request #1834 from Kriechi/remove_ssl_match_hostname
remove backport.ssl_match_hostname
2016-12-10 17:03:18 +01:00
Thomas Kriechbaumer
7bae941ecc remove backport.ssl_match_hostname
This is already included in Python 3.5+
2016-12-10 14:29:51 +01:00
Maximilian Hils
3e37cbd061 minor fixes 2016-12-10 12:06:33 +01:00
Maximilian Hils
123ef043dc add new xml/html pretty-printer 🎉 2016-12-10 11:40:07 +01:00
Maximilian Hils
293b79af91 remove lxml-dependent code 2016-12-10 10:19:05 +01:00
Maximilian Hils
a7ba2f7b46 update tests, increase coverage, add type info 2016-12-09 21:26:02 +01:00
Maximilian Hils
f53f079f91 split contentviews.py into mitmproxy.contentviews 2016-12-09 19:02:55 +01:00
Maximilian Hils
f0e9e4bab9 fix #1803 2016-12-09 17:18:26 +01:00
Aldo Cortesi
e943147fc3 options: add a merge method to assimilate options
Fixes #953
2016-12-08 16:12:40 +13:00
Aldo Cortesi
67e9de5f7f console: use an addon to capture logs
Fix #1780
2016-12-08 10:47:45 +13:00
Aldo Cortesi
b2695dbc6a Minor tweaks 2016-12-08 10:21:06 +13:00
Aldo Cortesi
a617e3b5f7 Amalgamate all the Options objects 2016-12-08 10:21:06 +13:00
Aldo Cortesi
d742d4fb8c Replace configargparse with argparse, enable new options loading
This commit ditches configargparse and enables the new config file format. The
default location is ~/.mitmproxy/config.yaml. Unifying all of the various
Options objects will follow in the next patch.
2016-12-08 10:21:06 +13:00
Aldo Cortesi
6aacd27ab2 Add YAML serialization of options
This uses ruamel.yaml. The library seems well-supported, and can do in-place
modification of config files that retains user comments and file structure.
2016-12-08 10:21:06 +13:00
Aldo Cortesi
150372e297 options: defaults are a class attribute 2016-12-08 10:21:06 +13:00
Aldo Cortesi
2cb1f70381 Options - avoid mutation, API cleanup, has_changed
- Always return a deepcopy of options to avoid accidental mutation of options
state.
- Remove .get(opt, default). This is an inappropriate API for Options - trying
to retrieve an option that doesn't exist should always be an error.
- Add the has_changed method that checks if an option differs from the default,
use it in mitmproxy console.
2016-12-08 10:21:06 +13:00
Aldo Cortesi
00c897a185 options: save defaults, add .reset() to restore defaults
Use .reset() in console app to clear options.
2016-12-08 10:21:06 +13:00
Aldo Cortesi
d74cac265a Add YAML serialization of options
This uses ruamel.yaml. The library seems well-supported, and can do in-place
modification of config files that retains user comments and file structure.
2016-12-08 10:21:06 +13:00
Aldo Cortesi
c94cd512d1 options: defaults are a class attribute 2016-12-08 10:21:06 +13:00
Aldo Cortesi
3594faf5c4 Correct refresh_server_playback option default 2016-12-08 10:21:06 +13:00
Aldo Cortesi
c062e302e9 Add OptManager.subscribe, use it to clean up palettes in console
.subscribe lets you subscribe a function to a specified set of options.
2016-12-08 10:21:06 +13:00
Aldo Cortesi
0c091bd92b Options - avoid mutation, API cleanup, has_changed
- Always return a deepcopy of options to avoid accidental mutation of options
state.
- Remove .get(opt, default). This is an inappropriate API for Options - trying
to retrieve an option that doesn't exist should always be an error.
- Add the has_changed method that checks if an option differs from the default,
use it in mitmproxy console.
2016-12-08 10:21:06 +13:00
Aldo Cortesi
b231836c70 Get rid of tfile testing option
It's weird, it's ugly, it's getting in the way of my options refactoring, and
it must therefore die.
2016-12-08 10:21:05 +13:00
Aldo Cortesi
297493801d Clean up dump tests
- Remove tests that redundantly test addon funtionality that we've already
tested more comprehensively elsewhere.
- Extend to 100% coverage for tools/dump.py
2016-12-08 10:21:05 +13:00
Aldo Cortesi
b4d33aaebf options: save defaults, add .reset() to restore defaults
Use .reset() in console app to clear options.
2016-12-08 10:21:05 +13:00
Thomas Kriechbaumer
47196e8676 tls_parser: allow optional extensions
fixes #1816
2016-12-06 19:51:57 +01:00
Maximilian Hils
e44493bda5 Merge pull request #1810 from Kriechi/construct
upgrade to construct 2.8 and new API
2016-12-04 18:43:20 +01:00
Thomas Kriechbaumer
33689c6b2d upgrade to construct 2.8 and new API 2016-12-04 16:15:28 +01:00
Thomas Kriechbaumer
1a36efbb6a simplify ALPN and OpenSSL on macOS 2016-12-04 11:04:06 +01:00
Thomas Kriechbaumer
741c2b7b66 fix whitespace 2016-12-03 16:55:56 +01:00
Thomas Kriechbaumer
e9fa786fa9 fix indentation 2016-12-03 16:53:13 +01:00
Thomas Kriechbaumer
1fcf79fff0 fix ALPN usage 2016-12-02 11:58:20 +01:00
Thomas Kriechbaumer
d2216801dd websocket: make flowfilter work 2016-11-29 23:01:55 +01:00
Thomas Kriechbaumer
ea6de424a3 websocket: carry over per-message compression bit 2016-11-29 22:32:55 +01:00
Thomas Kriechbaumer
073a286098 websocket: reduce connection timeout 2016-11-29 22:17:33 +01:00
Thomas Kriechbaumer
bd8ae910d2 websocket: fix message type on chunking 2016-11-29 22:13:59 +01:00
Thomas Kriechbaumer
6e15e766c5 websocket: fix close handshake and re-chunking 2016-11-29 22:01:41 +01:00
Thomas Kriechbaumer
5ee192b758 websocket: fix empty frame with fin=1 2016-11-29 21:00:42 +01:00
Maximilian Hils
34bf3a2496 fix #1783 (#1794) 2016-11-28 13:29:06 +01:00
Maximilian Hils
e64d2ce829 Merge pull request #1792 from Kriechi/mitmdump-filter-help
improve mitmdump filter help
2016-11-28 02:13:39 +01:00
Maximilian Hils
3154dc87fd fix pyinstaller
amongst other things, fix #1746
2016-11-28 00:51:52 +01:00
Thomas Kriechbaumer
b5daafb518 improve mitmdump filter help 2016-11-25 21:59:13 +01:00
Maximilian Hils
568f40c810 Fix transparent mode initialisation, refactor mitmproxy.platform (#1787) 2016-11-25 17:32:23 +01:00
Maximilian Hils
0386740404 mitmweb: include console logging 2016-11-25 17:20:14 +01:00
Maximilian Hils
1d3cb9eeb8 mitmweb: add --no-browser 2016-11-25 17:20:14 +01:00
Maximilian Hils
222106916e Merge branch 'mitmweb-eventlog' 2016-11-23 22:47:50 +01:00
Maximilian Hils
d15ddfad14 fix contentview attributes 2016-11-23 22:47:36 +01:00
Maximilian Hils
45332006a3 mitmweb: 100% app test coverage, numerous fixes 2016-11-23 22:35:07 +01:00
Thomas Kriechbaumer
9bc5adfb03 add more websocket indicators to mitmproxy and mitmdump 2016-11-23 10:18:45 +01:00
Thomas Kriechbaumer
4b04566a34 add metadata info to flow detail view 2016-11-23 10:18:45 +01:00
Thomas Kriechbaumer
ea97f62975 websocket: show messages in the eventlog 2016-11-23 10:18:45 +01:00
Thomas Kriechbaumer
5dfc199086 websocket: add tests 2016-11-23 10:18:45 +01:00
Thomas Kriechbaumer
4beb693c9c websocket: change cmdline option 2016-11-23 10:18:45 +01:00
Thomas Kriechbaumer
3d8f3d4c23 add WebSocket flows and messages 2016-11-23 10:18:45 +01:00
Thomas Kriechbaumer
ffb3988dc9 rename WebSocket{s,} protocol 2016-11-23 10:18:45 +01:00
Maximilian Hils
dc75605e46 minor fixes 2016-11-23 01:27:52 +01:00
Maximilian Hils
72dcf70db2 mitmweb: fix event display 2016-11-23 01:27:51 +01:00
Maximilian Hils
fea6041cde mitmweb: cleanup, reimplement eventlog 2016-11-23 01:27:50 +01:00
Maximilian Hils
a6c608e085 make the new mypy release happy 2016-11-23 01:27:23 +01:00
Maximilian Hils
40f0193dda remove mitmweb auth
9b08279c7c removed the actual functionality.
we should not have a command line switch that does nothing. :)
2016-11-22 18:27:16 +01:00
Maximilian Hils
21a03d56b5 don't set an empty ALPN, refs #1772 2016-11-22 17:02:37 +01:00
Maximilian Hils
f644665cd9 update pydivert, fix #1749 2016-11-21 14:14:52 +01:00
Yoginski
ebff5f2466 Descriptive error message for SSL context initialization failure (#1767) 2016-11-21 09:40:09 +01:00
Maximilian Hils
f74e561524 rewrite absolute-form HTTP requests to relative form, fix #1759 (#1765) 2016-11-20 17:21:21 +01:00
Edgar Boda-Majer
078f36d86a handle SIGINT with a quit prompt (#1760) 2016-11-20 16:40:04 +01:00
Doug Freed
0ff1967226 proxy/protocol/base: Allow spoofing fixed source
Allow combining --spoof-source-address and --upstream-bind-address to
spoof a fixed source address.  Also update the help text for
--spoof-source-address to indicate this new possibility.
2016-11-18 14:46:32 +00:00
Maximilian Hils
5ce370e2a9 lint! 2016-11-18 12:59:59 +01:00
Maximilian Hils
2ee8bc2f1a fix type checks 2016-11-16 17:19:38 +01:00
Maximilian Hils
de6bf175e2 mitmweb: start browser on startup 2016-11-16 15:09:54 +01:00
Maximilian Hils
677789a617 minor fixes 2016-11-16 15:09:53 +01:00
Maximilian Hils
47ec1c9570 Merge pull request #1742 from dwfreed/patch-2
Make the upstream bind address a separate option
2016-11-16 13:37:12 +01:00
Thomas Kriechbaumer
3d26bd4aa1 Merge pull request #1748 from Kriechi/better-onboarding
add macOS/OSX installation instructions to onboarding page
2016-11-16 13:04:07 +01:00
Thomas Kriechbaumer
d7a22d92ec add macOS/OSX installation instructions to onboarding page 2016-11-16 11:05:52 +01:00
Aldo Cortesi
8065b44eed addons.view: clarify modification events
This adds a set of store modification events, and uses them for flow settings.
This addresses a bug where settings could persist even after flows were deleted.
2016-11-15 09:53:17 +13:00
Doug Freed
4cfda51c37 proxy/protocol/base: use upstream_bind_address
Use the upstream_bind_address option, instead of listen_host.
2016-11-14 12:12:48 +00:00
Doug Freed
f89671a33b tools/cmdline: add upstream bind address option
Allow specifying the upstream bind address on the command line.
2016-11-14 12:12:48 +00:00
Doug Freed
078bd532c3 options: add upstream_bind_address
Add upstream_bind_address to the options object
2016-11-14 12:12:48 +00:00
Aldo Cortesi
2d0a65a3f4 Merge pull request #1738 from Kriechi/fix-1737
restrict ALPN offers if host changes
2016-11-14 08:50:29 +13:00
Thomas Kriechbaumer
6fb706ec15 restrict ALPN offers if host changes 2016-11-13 12:11:56 +01:00
Aldo Cortesi
9b08279c7c addons.proxyauth: out with the old, in with the new
- Strip out old auth mechanisms, and enable addon
- Disable web app auth for now - this should just use the Tornado auth stuff
2016-11-13 19:59:59 +13:00
Aldo Cortesi
dc88b7d110 addons.proxyauth: complete and test 2016-11-13 18:14:23 +13:00