Commit Graph

1089 Commits

Author SHA1 Message Date
Aldo Cortesi
dc19ff7a9d mitmdump: show script errors on startup
Add the terminal logger before any other addons, so we see script errors on
startup.
2016-10-16 20:26:06 +13:00
Aldo Cortesi
fb69c9c345 docs: overview, classes, arguments 2016-10-16 20:26:06 +13:00
Aldo Cortesi
61040a7bcd docs: improve external source links, tweak code docs 2016-10-16 20:26:06 +13:00
Aldo Cortesi
c8f2f1019d Clean up models.http a bit
- We don't need a deprecation warning here
- Bring imports inline with policy
2016-10-16 20:26:06 +13:00
Aldo Cortesi
fdb6a44245 docs: cleanups improvements and fighting sphinx
- Hide links to internal code listings, and link to github instead
- Improve formatting of code/example captions
- Fix outdated documentation of command-line options
- Complete documentation of all events + improved formatting
- tcp_open -> tcp_start, tcp_close -> tcp_end to reduce confusion
2016-10-16 20:26:06 +13:00
Maximilian Hils
26af9b29fc fix #1611 2016-10-15 18:25:18 -07:00
Maximilian Hils
5fab94580e fix #1605 2016-10-13 20:31:14 -07:00
Maximilian Hils
b422ba5328 simplify eof detection 2016-10-05 17:45:48 -07:00
Thomas Kriechbaumer
ff388f2e62 Merge pull request #1598 from cortesi/dummystate
mitmdump: use a dummy state object
2016-10-04 15:36:31 +02:00
Thomas Kriechbaumer
90898f9084 use flt instead of filt for flowfilter expressions 2016-10-04 14:51:04 +02:00
Aldo Cortesi
e189652680 mitmdump: use a dummy state object
Most of the mitmdump memory leak turns out to be due to our leaky handling of
the state object. Since mitmdump doesn't actually use the state object, we can
replace it with a shell.
2016-10-04 16:52:58 +11:00
Aldo Cortesi
7fe09f4d26 Consolidate logging
- Make log event handler work
- Move terminal event log into an addon
- Clean various log related errors and duplications
2016-10-04 13:00:15 +11:00
Aldo Cortesi
2bd8686629 http2: support the requestheaders event
We do this by splitting read_request into read_request_headers and
read_request_body.
2016-10-04 10:33:57 +11:00
Aldo Cortesi
2e48b60ff1 Clarify channel interaction pattern
Before this patch, it wasn't clear when the arguments to an event could be
modified, and when a new object should be returned. After this patch, the right
thing to do is to modify the arguments in 99% of cases. The only exception to
this is root_layer, for which we can find a better structure down the track.
2016-10-04 08:13:56 +11:00
Aldo Cortesi
1ae73b9157 Add requestheaders event
HTTP1 only for now, HTTP2 coming next.
2016-10-04 08:13:56 +11:00
Aldo Cortesi
b735694653 websockets_handshake -> websocket_handshake
The plural feels awkward.
2016-10-04 08:13:56 +11:00
Thomas Kriechbaumer
36c04f1631 fix flowfilter.match args 2016-10-03 12:04:17 +02:00
Thomas Kriechbaumer
bb60b76af4 use flowfilter.match 2016-10-03 11:45:54 +02:00
Thomas Kriechbaumer
5f8b8bf35e move flow.match to flowfilter.match 2016-10-03 11:45:54 +02:00
Thomas Kriechbaumer
ba84248910 rename mitmproxy.filt -> mitmproxy.flowfilter 2016-10-03 11:45:54 +02:00
Maximilian Hils
611dad12a7 Revert "Add API to programmatically create new requests (#1534)"
This reverts commit ccbdcd684b,
which yielded a test timeout.
2016-10-02 23:08:51 -07:00
Tyler St. Onge
ccbdcd684b Add API to programmatically create new requests (#1534) 2016-10-01 13:06:59 +02:00
Aldo Cortesi
66825568d7 console: fix client replay 2016-09-30 12:13:49 +10:00
Aldo Cortesi
6d1f036021 Merge remote-tracking branch 'upstream/master' 2016-09-30 11:02:08 +10:00
Aldo Cortesi
825b0917bd docs: minor formatting/cleanups 2016-09-30 10:59:40 +10:00
Maximilian Hils
e0cd33b586 fix host header modification, refs #1571 2016-09-28 11:06:39 -07:00
Ryan Laughlin
ad6d675b20 In reverse proxy mode, always send SNI 2016-09-27 10:49:04 -04:00
Maximilian Hils
1a762cdce5 override host header in reverse proxy mode, refs #1571 2016-09-26 22:30:01 -07:00
Maximilian Hils
ebccc103d8 Revert "minor fixes"
This reverts commit f94219e737.
2016-09-26 18:07:04 -07:00
Maximilian Hils
f94219e737 minor fixes 2016-09-26 17:53:10 -07:00
Maximilian Hils
eeec17902f update dependencies, minor fixes (#1577) 2016-09-24 21:01:48 -07:00
Maximilian Hils
de65aebfdf fix tests 2016-09-24 18:28:30 -07:00
Maximilian Hils
6f86741574 minor fixes 2016-09-24 18:21:58 -07:00
Maximilian Hils
0a643ad20f remove option argument for addons.add (#1576) 2016-09-24 18:21:12 -07:00
Maximilian Hils
20bcfbb5d0 fix #1492 2016-09-24 15:37:19 -07:00
Maximilian Hils
276b467b0e fix #1393 2016-09-23 22:52:58 -07:00
Maximilian Hils
9142da1a7d Merge pull request #1566 from mhils/issue-1546
add websocket on/off switch, improve logging (fix #1546, fix #1547)
2016-09-22 03:06:39 -07:00
Maximilian Hils
d585236a82 Merge pull request #1567 from mhils/issue-1467
Scripts: cut traceback properly, fix #1467
2016-09-22 03:06:11 -07:00
Maximilian Hils
77868434e7 fix tests 2016-09-22 02:10:02 -07:00
Maximilian Hils
2510cd3111 add websocket on/off switch, improve logging (fix #1546, fix #1547) 2016-09-22 02:10:02 -07:00
Maximilian Hils
a3329c5a80 scripts: cut traceback properly, fix #1467 2016-09-22 02:03:12 -07:00
Maximilian Hils
f59ae4a57f Merge branch 'fully_transparent' 2016-09-22 01:58:08 -07:00
Maximilian Hils
e5b79a6d72 minor cleanup 2016-09-22 01:58:01 -07:00
smill@cuckoo.sh
ec588f8822 Removed obsolete code. 2016-09-22 08:51:17 +00:00
Maximilian Hils
dbc6344c8c Merge pull request #1522 from chhsiao90/dump-ready-#1505
Notify when proxy server started
2016-09-21 22:26:59 -07:00
chhsiao90
d044786ac8 Notify when proxy server started 2016-09-22 13:23:30 +08:00
Maximilian Hils
e4ae35dabb fix mitmdump error logging, fix #1549 (#1565)
This commit replaces the logging statement introduced in
afe34e8b28 with the previous implementation
where an exception is raised. ProtocolExceptions are normally logged as regular warnings,
achieving the same effect for the end user. However, this retains the full stack trace
for debug-level logging, which makes the analysis of client errors considerably easier.
2016-09-21 21:49:32 -07:00
Maximilian Hils
1e5a5b03f8 Merge pull request #1509 from arjun23496/regex_star_mod
Fixes #1471 - Change .* to match entire body
2016-09-21 18:13:14 -07:00
Doug Freed
3130d58267 console/options: kill -> replay_kill_extra
@cortesi renamed the kill option to replay_kill_extra in b0213a2, but
missed a usage here because it was in a string. This fixes opening the
options menu in console.
2016-09-17 20:10:08 -04:00
vulnminer
e1f021d732 Update app.py 2016-09-17 18:45:37 +03:00
smill
83a28021ad Fixed travis-ci issues. 2016-09-14 19:11:57 +00:00
Aldo Cortesi
f2e010ebc0 Misc cleanups 2016-09-12 11:27:30 +12:00
Aldo Cortesi
97b15b58b7 console: update flow list when state is modified 2016-09-11 20:06:21 +12:00
Aldo Cortesi
34e17efaa0 Remove obsolete exceptions.ScriptException 2016-09-11 20:02:05 +12:00
Aldo Cortesi
cfb943bfdd Redesign client replay
- Move to an addon
- Use a much simpler synchronisation mechanism
2016-09-11 20:00:34 +12:00
Aldo Cortesi
6427176cf1 console: fix/improve server replay
- Fix "S" shortcut in list view
- Consolidate replay from file in global R shortcut
- Fix help
2016-09-11 15:37:11 +12:00
Aldo Cortesi
6b9221ffeb Add "run_once" support to the script addon, use it in mitmproxy
Fixes #1418
2016-09-11 13:22:01 +12:00
Aldo Cortesi
9b814ca067 options.replay_ignore* -> options.server_replay_ignore* 2016-09-10 10:21:52 +12:00
Aldo Cortesi
8677e91074 options.nopop -> options.server_replay_nopop 2016-09-10 10:09:07 +12:00
Aldo Cortesi
5ebe8c1bc8 options.rheaders -> options.server_replay_use_headers 2016-09-10 10:09:07 +12:00
Aldo Cortesi
b0213a2c0e options.kill -> options.replay_kill_extra 2016-09-10 10:09:07 +12:00
Aldo Cortesi
4ff8a72521 Roll out synchronisation for mitmproxy tests
This extends some of the work I did for pathod and netlib to the mitmproxy test
suite. It also fixes what may be a leak in replays.

Failing on connection leak is disabled on Windows for the moment.

Fixes #1535
2016-09-10 09:18:11 +12:00
arjun23496
2e1265f75e Changed filter to match replacement for DOTALL 2016-09-09 10:46:16 +05:30
arjun23496
f6ed06bf16 Convert to flags=value for future compatibility 2016-09-09 10:39:28 +05:30
arjun23496
79bbc41cb4 Fixes #1471 - Change .* to match entire body 2016-09-09 10:39:28 +05:30
Aldo Cortesi
c1bb582129 Fix interactive server replay in mitmproxy console 2016-09-09 11:15:07 +12:00
Aldo Cortesi
715e47e3d4 Extend addons.Addons with a get method that retrieves an addon by name 2016-09-09 10:31:34 +12:00
Aldo Cortesi
d4f291a8ad Fix immediate server replay-related crash in mitmproxy 2016-09-09 10:03:36 +12:00
Aldo Cortesi
6c970cfd4c Fix byte/string comparison error in server playback 2016-09-07 12:11:10 +12:00
Aldo Cortesi
9abdd3a8d9 Move server playback in to an addon
- Move server playback into an addon
- Implement a better sync strategy to decide when to exit if keepserving is
off. We now wait for the final flow played back to no longer be live.
- Leave interactive server playback in mitmproxy console broken for now - there
are broader addon-related changes that need to be made for that, and this patch
is already big.

Fixes #1229
2016-09-06 23:48:02 +12:00
smill
2ecd89fc51 Made it possible to modify the server_conn.connection attribute,
using the serverconnect stub.
2016-09-05 10:49:39 +00:00
smill
fbfedbdc8f Improved error-handling / supplemented documention. 2016-09-04 01:30:27 +00:00
Thomas Kriechbaumer
3da9e37d9e http2: improve connection lost 2016-09-03 16:56:21 +02:00
smill
377921fa99 Introduced some minor improvements to the shim loader. 2016-09-03 13:34:17 +00:00
smill
a6e0c7e8f0 Introduced the capability to spoof the source address
of outgoing sessions + an accompanying shim loader.
2016-09-03 12:22:09 +00:00
Thomas Kriechbaumer
e273a29a8c http2: improve kill and cleanup threads 2016-09-03 13:46:54 +02:00
Thomas Kriechbaumer
ea2a51d3be http2: fixes 2016-09-03 11:50:37 +02:00
Thomas Kriechbaumer
5dda9505b6 http2: improve framereader 2016-09-03 10:00:31 +02:00
Thomas Kriechbaumer
043180a8fa http2: improve closed connection handling 2016-09-03 10:00:31 +02:00
Thomas Kriechbaumer
9b5acc19e2 http2: improve zombie exception handling 2016-09-03 10:00:31 +02:00
Thomas Kriechbaumer
0badb3ec91 cleanup 2016-09-03 10:00:31 +02:00
Thomas Kriechbaumer
cd3d30633f websockets: update protocol detection 2016-09-01 09:57:35 +02:00
Thomas Kriechbaumer
e5b0dae7e9 add websockets support to mitmproxy 2016-09-01 09:57:18 +02:00
Aldo Cortesi
afe34e8b28 Improve the way we handle upstream errors
- Don't log a traceback for either HTTP or HTTPS DNS resolution or TCP
connection errors. These are "ordinary" errors, not mitmproxy issues.
- Ensure that the error handler is correctly called for SSL-related protocol
errors.
2016-09-01 12:32:09 +12:00
Thomas Kriechbaumer
6afbfc8526 Merge pull request #1493 from dufferzafar/long-urls
Truncate URLs in console
2016-08-26 16:44:44 +02:00
Thomas Kriechbaumer
bee7d368dd refactor http 2016-08-24 09:19:35 +02:00
Maximilian Hils
8926becf92 fix #1504 2016-08-23 23:25:27 -07:00
Maximilian Hils
f27028f58e introduce Response.make for simple response creation 2016-08-23 00:17:06 -07:00
Shadab Zafar
2e48f9c345 Show full URL in flowview 2016-08-23 12:44:39 +05:30
Shadab Zafar
7b5d5d3a54 Use unicode elipsis & make extra params a part of dict 2016-08-23 12:43:45 +05:30
Maximilian Hils
798ce96bd0 remove redundant property 2016-08-22 21:01:24 -07:00
Maximilian Hils
53ccbaf4f5 Merge pull request #1489 from mitmproxy/web_refactor
Web refactor
2016-08-22 20:52:03 -07:00
Shadab Zafar
41e4526a33 Use terminal width rather than a constant 2016-08-20 16:01:01 +05:30
Shadab Zafar
22283dd373 Truncate URLs in console 2016-08-20 16:00:50 +05:30
Clemens
9a86750e9d add static files 2016-08-18 18:48:18 +02:00
Shadab Zafar
ed88bcad72 Better status message on mouse drag 2016-08-18 00:24:52 +05:30
Thomas Kriechbaumer
516e64a8fa fix #1476 2016-08-16 10:40:46 +02:00
Thomas Kriechbaumer
bfe22e739c Merge pull request #1481 from Kriechi/http2-simplify-zombies
http2: simplify zombie detection
2016-08-16 10:10:39 +02:00
Thomas Kriechbaumer
8ade51d4b4 fix style 2016-08-16 10:09:05 +02:00
Thomas Kriechbaumer
17c65e46cb Merge pull request #1480 from mhils/reverse-proxy-auth
Add basic auth support for reverse proxy mode
2016-08-16 10:07:59 +02:00
Thomas Kriechbaumer
8f4baf42ea http2: cleanup 2016-08-14 13:06:33 +02:00
Thomas Kriechbaumer
0cc695407d http2: simplify zombie detection 2016-08-14 12:43:56 +02:00
Thomas Kriechbaumer
65677bdd28 style fixes 2016-08-14 12:43:18 +02:00
Maximilian Hils
a9401472cd add basic auth support for reverse proxy mode 2016-08-13 11:04:53 -07:00
Maximilian Hils
b39c6e0883 Merge pull request #1441 from mitmproxy/integrate_mitmproxy_contentviews
Integrate mitmproxy contentviews
2016-08-13 10:27:53 -07:00
Thomas Kriechbaumer
0c3f2a3806 fix #1430 2016-08-13 16:56:05 +02:00
Maximilian Hils
5a22496ee8 clean up code, improve DummyReply 2016-08-09 22:29:07 -07:00
Maximilian Hils
818840f553 finalize Reply semantics, fix tests 2016-08-09 20:26:24 -07:00
Maximilian Hils
f719644aa1 make Reply.state readonly 2016-08-09 17:23:30 -07:00
Clemens
b27e456ce2 merge with master 2016-08-09 19:49:36 +02:00
Clemens
adfdcc9391 added hints from mhils 2016-08-09 08:40:24 +02:00
Maximilian Hils
0ee1b40c17 improve reply semantics 2016-08-08 19:20:06 -07:00
Maximilian Hils
a52a1df23c fix reply concurrency 2016-08-04 17:03:27 -07:00
Maximilian Hils
dcfa7027ae fix tests 2016-08-04 15:39:48 -07:00
Maximilian Hils
f89455fd07 minor improvements 2016-08-04 15:23:44 -07:00
Maximilian Hils
951885a5dd simplify contentview logic 2016-08-04 15:23:44 -07:00
Clemens
a8aa1f2d1c fix get contentview in mitmweb 2016-08-04 09:34:36 +02:00
Clemens
e036bc9304 integrate simplified contentviews 2016-08-03 12:17:19 +02:00
Maximilian Hils
4ff9dba7d2 fix #1465, fix ssl_insecure 2016-08-02 20:08:04 -07:00
Maximilian Hils
49ce50d5d0 Revert "Add missing ssl_insecure option"
This reverts commit 1d33d76bfd.
2016-08-02 19:08:20 -07:00
Shadab Zafar
1d33d76bfd Add missing ssl_insecure option 2016-08-02 15:58:40 +05:30
Clemens
bcc496527e replace get_content_view in dumper and flowview 2016-08-01 15:21:00 +02:00
Manish Kumar
8701705504 integer division for python 3 compatibility 2016-08-01 15:37:26 +05:30
Maximilian Hils
7ea9726e5d Merge pull request #1453 from dufferzafar/limit-to-filter
Rename "Limit" feature to "Filter View"
2016-07-31 23:13:31 -07:00
Aldo Cortesi
ca0eab0f05 Merge pull request #1447 from mitmproxy/secure-by-default
Verify upstream certificates by default
2016-08-01 14:44:16 +12:00
Shadab Zafar
10ad56c853 Rename "Limit" feature to "Filter View" 2016-07-31 16:54:09 +05:30
Maximilian Hils
f008bdf590 Merge pull request #1451 from YanchWare/master
Integrated encode/decoder for brotli
2016-07-30 15:56:15 -07:00
Angelo Agatino Nicolosi
6792ec4058 Integrated encode/decoder for brotli 2016-07-30 14:43:53 +02:00
Vincent Haupert
07f77f0866 Substitute tilde with user's home.
When downloding the mitmproxy certificate using mitm.it, '~' currently
is not expanded causing a FileNotFoundException. This patch uses
expanduser() to replace the initial tilde with the user's home.
2016-07-30 12:49:00 +02:00
Vincent Haupert
73b7da1a03 Fix platform import on Linux using python3
Using python3, sys.platform returns "linux" instead of "linux2" using
python2. This patch accepts "linux" as well as "linux2".
2016-07-30 12:42:33 +02:00
Clemens
cb7da1ee44 moved getlines to contentviews 2016-07-29 15:37:41 +02:00
Clemens
a56c2ca731 combine clientside and serverside contentviews 2016-07-29 09:45:15 +02:00
Maximilian Hils
e800f321af Merge pull request #1436 from dufferzafar/jsbeautifier
Use jsbeautifier from pip
2016-07-28 15:37:06 -07:00
Clemens
ad5bebeda0 mitmproxy.contentviews added 2016-07-28 17:10:06 +02:00
dufferzafar
1cffa5f46b Use replace while decoding 2016-07-28 07:48:10 -07:00
Maximilian Hils
8b325fd65a improve invalid certificate ux 2016-07-27 21:01:28 -07:00
Maximilian Hils
83102b853f minor fixes 2016-07-27 19:38:36 -07:00
Sachin Kelkar
17fdb841f0 verify upstream certificates by default (#1111)
squashed and merged by @mhils
2016-07-27 17:57:38 -07:00
Aldo Cortesi
3636ed7d41 Merge pull request #1446 from cortesi/state
console: add replace_view_state, fix statusbar issues
2016-07-28 11:18:20 +12:00
Aldo Cortesi
d6e4ef4ced console: add replace_view_state, fix statusbar issues
Fixes #1394
2016-07-28 11:01:32 +12:00
Aldo Cortesi
75ab006ca9 Merge pull request #1442 from cortesi/scripts
mitmdump: send script .done when terminating after flow read
2016-07-28 10:22:30 +12:00
Aldo Cortesi
297cf5d565 mitmdump: send script .done when terminating after flow read
Fixes #1439
2016-07-28 09:35:25 +12:00
Clemens Brunner
41383b866e add favicon to mitmweb (#1440) 2016-07-27 11:20:36 -07:00
dufferzafar
583827ad3f Use strutils.native before sending data to jsbeautifier 2016-07-27 04:34:51 -07:00
dufferzafar
821413349e Re-order imports etc. 2016-07-27 04:34:51 -07:00
dufferzafar
21e6ecb47d Remove jsbeautifier files 2016-07-27 04:34:51 -07:00
dufferzafar
303b6df447 Use jsbeautifier from pip 2016-07-27 04:33:16 -07:00
Clemens
2c3ddb0ecc add parameter to content requests 2016-07-27 10:21:06 +02:00
Clemens
d8a78d9f52 add contentviews to settings 2016-07-27 09:45:46 +02:00
Maximilian Hils
705d042629 fix #1432 2016-07-25 19:37:47 -07:00
Aldo Cortesi
38b43cc9f9 Merge pull request #1428 from dufferzafar/replay
Consolidate replay under R
2016-07-26 13:53:44 +12:00
Aldo Cortesi
db22e72103 Merge pull request #1427 from mhils/grideditor
Refactor GridEditor
2016-07-26 13:38:04 +12:00
Maximilian Hils
817b675c52 Merge branch 'flow_editing_v2' 2016-07-25 17:51:38 -07:00
Maximilian Hils
79ebcb046e Merge remote-tracking branch 'origin/master' into flow_editing_v2 2016-07-25 15:16:16 -07:00
Maximilian Hils
3254595584 minor fixes 2016-07-25 15:12:20 -07:00
Maximilian Hils
ffe6593361 make sure to escape errors printed to the console 2016-07-25 14:37:19 -07:00
Clemens
ca4541613c combine content with header updates 2016-07-25 14:34:00 +02:00
Clemens
61ef7ca91b added contentHash 2016-07-25 10:56:12 +02:00
Shadab Zafar
f164181f2e Consolidate replay under R 2016-07-25 10:19:34 +05:30
Maximilian Hils
2d985e964c py2: silence abc metaclass warnings 2016-07-24 21:17:41 -07:00
Maximilian Hils
480ae46b88 refactor grideditor for py3 compatibility 2016-07-24 21:17:41 -07:00
Maximilian Hils
c1bd4dabc8 Merge pull request #1425 from dufferzafar/clear-hotfix
Fix clearing of flows
2016-07-24 18:39:44 -07:00
Shadab Zafar
b99da24529 Fix clearing of flows
Fixes #1424
2016-07-25 07:08:03 +05:30
Maximilian Hils
ec6934d339 console: fix options signal 2016-07-24 11:15:28 -07:00
Maximilian Hils
e9eee5a6da Merge pull request #1423 from dufferzafar/fix-search
Fix console search on Python 3
2016-07-24 09:53:18 -07:00
Shadab Zafar
71b6b84f29 Fix console search on Python 3 2016-07-24 22:21:04 +05:30
Maximilian Hils
c5f3bb83f6 fix keyboard navigation 2016-07-24 09:43:29 -07:00
Maximilian Hils
4d042ec543 fix #1373, fix #1154 (#1420) 2016-07-23 18:48:54 -07:00
Maximilian Hils
a87d089561 Merge pull request #1380 from dufferzafar/marked-filter
Marked property and filter
2016-07-23 17:55:12 -07:00
Maximilian Hils
ea718df111 Merge pull request #1416 from mhils/issue-1396
fix #1396, fix #1205, fix #1374
2016-07-23 15:37:23 -07:00
Maximilian Hils
fa45722ed8 Merge pull request #1402 from mhils/console-fixes
minor fixes
2016-07-23 12:49:57 -07:00
Maximilian Hils
ca493ad7f3 fix #1396, fix #1205, fix #1374 2016-07-23 12:09:19 -07:00
Maximilian Hils
fcb906dc97 improve dumper addon text alignment (#1415) 2016-07-23 12:01:05 -07:00
Maximilian Hils
61de6fa1d6 fix test_view_urlencoded 2016-07-23 11:55:27 -07:00
Thomas Kriechbaumer
c58db1adf3 http2: fix kill (#1413) 2016-07-23 11:11:45 -07:00
Shadab Zafar
f7217b006b Remove save marked flows prompt 2016-07-23 13:19:59 +05:30
Shadab Zafar
d6deec60b0 Add marked attribute when converting flow to 0.18 2016-07-23 10:41:57 +05:30
Shadab Zafar
32ef73e6b4 Remove [Marked Flows] status indicator 2016-07-23 10:41:57 +05:30
Shadab Zafar
484dbd8a7b Keep focus on same flow when disabling marked view 2016-07-23 10:41:57 +05:30
Shadab Zafar
426a62299c Focus nearest matching flow if current flow is unmarked 2016-07-23 10:41:57 +05:30
Shadab Zafar
6135ec1196 Move match function to Flow 2016-07-23 10:41:57 +05:30
Shadab Zafar
4a3e9c0563 Keep focus on same flow when enabling marked view
...if it is marked.
2016-07-23 10:41:57 +05:30
Shadab Zafar
40b50e9398 Remove flow marking from ConsoleState 2016-07-23 10:41:57 +05:30
Shadab Zafar
500b61a811 Use marked property in ConsoleState.clear 2016-07-23 10:41:57 +05:30
Shadab Zafar
653ed4e342 Use ~marked filter while toggling marked view 2016-07-23 10:41:57 +05:30
Shadab Zafar
cc98b9c32f Add a marked filter 2016-07-23 10:41:57 +05:30
Shadab Zafar
6c05a0c908 Update unmark all flows "U" 2016-07-23 10:41:57 +05:30
Shadab Zafar
d99d61e8ef Update save_marked_flows to use the new attribute 2016-07-23 10:41:57 +05:30
Shadab Zafar
6fe36a5b7f Fix display of mark status [m] 2016-07-23 10:41:57 +05:30
Shadab Zafar
911c7a4f1b Update toggling of marked attribute on pressing "m" 2016-07-23 10:41:57 +05:30
Shadab Zafar
541d9db27a Add marked attribute to flow 2016-07-23 10:41:57 +05:30
Aldo Cortesi
afda175e1c Addon iface: .configure(options) -> .configure(options, updated) 2016-07-23 15:43:55 +12:00
Aldo Cortesi
9294d19f90 scripts: .start can now return an Addon instance 2016-07-23 11:29:13 +12:00
Aldo Cortesi
05caa0a03d script: tune auto reload
- Don't respond to directory changes
- Ignore hidden files

I've "solved" this as well as it can be done in modd, and getting good results
here just turns into a large pile of heuristics that don't work in all
circumstances. Also watchdog sucks.
2016-07-23 11:08:14 +12:00
Aldo Cortesi
51a8ba57f1 script: add a namespace adaptor to match Addons 2016-07-23 11:03:50 +12:00
Maximilian Hils
9b40e1072c minor fixes 2016-07-21 20:33:55 -07:00
Maximilian Hils
9f0889d541 Merge pull request #1399 from mhils/fix-cv-cache-invalidation
Fix content view cache invalidation
2016-07-21 20:10:06 -07:00
Maximilian Hils
798759d2b3 fix content view cache invalidation 2016-07-21 19:49:32 -07:00
Maximilian Hils
8a2c7bea8e py3: fix copy to clipboard 2016-07-21 19:44:20 -07:00
Maximilian Hils
b28954ea5f minor fixes 2016-07-21 18:32:47 -07:00
Maximilian Hils
2ce7166a45 improve console ux for duplication/creation 2016-07-21 18:32:25 -07:00
Maximilian Hils
0911f4908b fix #1391 2016-07-21 18:31:12 -07:00
Maximilian Hils
f5841c705c fix #1392 2016-07-21 18:30:48 -07:00
Maximilian Hils
bb1400777b fix #1390 2016-07-21 18:30:09 -07:00
Maximilian Hils
873f48f6ab display python version in console help 2016-07-21 17:08:21 -07:00
Maximilian Hils
6ffeaaebed Merge branch 'master' of https://github.com/mitmproxy/mitmproxy 2016-07-21 01:16:35 -07:00
Maximilian Hils
427fffbcb8 web: fix flow content update 2016-07-21 00:43:31 -07:00
Aldo Cortesi
e15cf968c2 console: nopop, rheaders into Options 2016-07-21 15:51:12 +12:00
Aldo Cortesi
33ffbc28ed console: share one ActionBar instance
This fixes an issues where popping a view off the stack caused stale ActionBar
contents to be displayed.
2016-07-21 15:41:43 +12:00
Maximilian Hils
8b2a5cad2d Merge remote-tracking branch 'origin/flow_editing' 2016-07-20 14:35:20 -07:00
Shadab Zafar
2b58e153b9 Fix hotkey kerfuffle
`z` (instead of `C`) to "clear flow list or eventlog"
`C` to "export flow to clipboard"
`E` to "export flow to file"
2016-07-20 14:44:20 +05:30
Shadab Zafar
a933b82064 Make necessary changes in flowview 2016-07-20 14:41:21 +05:30
Shadab Zafar
3321e7bef3 Refactor exporters 2016-07-20 10:03:00 +05:30
Shadab Zafar
c84d0bd10b Add a url exporter 2016-07-20 10:03:00 +05:30
Shadab Zafar
0d478e71ee Ask for scope when called from flowlist 2016-07-20 10:03:00 +05:30
Shadab Zafar
e3670f9d9b Integrate ask_copy_part into exporters
This introduces some duplication but that'll be refactored later.
2016-07-20 10:03:00 +05:30
Shadab Zafar
8f4d49e22a Remove raw_request exporter
This functionality will be handled by headers+content
2016-07-20 10:03:00 +05:30
Shadab Zafar
3ae28f1c31 s/part/key 2016-07-20 10:03:00 +05:30
Shadab Zafar
e56df1b706 Don't send master and state parameters 2016-07-20 10:03:00 +05:30
Shadab Zafar
5377d5a61d Refactor 2016-07-20 10:03:00 +05:30
Shadab Zafar
4f04dd618c Common function for both file and clipboard 2016-07-20 10:03:00 +05:30
Shadab Zafar
5cf2228250 Export to file (p) or clipboard (P) 2016-07-20 10:03:00 +05:30
Shadab Zafar
6119f0f16a Exporters list 2016-07-20 10:03:00 +05:30
Maximilian Hils
b27db1fc81 minor fixes 2016-07-19 18:09:33 -07:00
Aldo Cortesi
8317772377 mitproxy.options -> mitmproxy.optmanager, mitmproxy.flow.options -> mitmproxy.options
It might be slightly  more felicitous to move optmanager into netlib at some
point, especially if we can also use it in pathod.

This also consolidates our constants in mitmproxy.options, removing some duplicates.
2016-07-20 11:28:53 +12:00
Aldo Cortesi
6000136b01 Merge branch 'master' into cleanup 2016-07-19 23:35:42 +12:00
Clemens
698fb11132 Merge remote-tracking branch 'origin/master' into flow_editing 2016-07-19 12:32:36 +02:00
Maximilian Hils
518c28fff9 update web assets 2016-07-19 03:14:35 -07:00
Maximilian Hils
4ea6e61ea8 fix web master options leftovers 2016-07-19 03:11:17 -07:00
Aldo Cortesi
29eecd5d66 Simplify common initilization in cmdline.py 2016-07-19 17:15:10 +12:00
Aldo Cortesi
9c9d28d068 Remove proxy.config.process_proxy_options 2016-07-19 16:25:09 +12:00
Aldo Cortesi
ef380917a8 ProxyConf: adapt mitmproxy console, ditch tcp|host filter attrs on flow.master 2016-07-19 16:25:09 +12:00
Aldo Cortesi
be081a24bc ProxyConf: auth_* into Options 2016-07-19 16:25:09 +12:00
Aldo Cortesi
5cfe783b6c ProxyConfig: http2, rawtcp, no_upstream_cert -> Options 2016-07-19 16:25:09 +12:00
Aldo Cortesi
fb6e9c44c8 ProxyConfig: ciphers_client and ciphers_server -> Options 2016-07-19 16:25:09 +12:00
Aldo Cortesi
26fa88a338 ProxyConfig: Refactor to move verification mode checks into configure 2016-07-19 16:25:09 +12:00
Aldo Cortesi
77bf092bcd ProxyConfig: tcp_hosts and ignore_hosts to Options 2016-07-19 16:25:09 +12:00
Aldo Cortesi
98bf544664 Regularize naming of upstream_trusted_ca* options 2016-07-19 16:25:09 +12:00
Aldo Cortesi
0a3839375d ProxyConfig: various SSL options to Options 2016-07-19 16:25:09 +12:00
Aldo Cortesi
f81c53f9bb Fix ca directory creation 2016-07-19 16:25:09 +12:00
Aldo Cortesi
78e8159007 config.parse_server_spec shouldn't pass byts to tcp.Address 2016-07-19 16:25:09 +12:00
Aldo Cortesi
f9622074cc ProxyConfig: mode, upstream_server and upstream_auth to Options 2016-07-19 16:25:09 +12:00
Aldo Cortesi
bd733e1232 Handle command-line argument errors properly
At some point we stopped handling exceptions from get_common_options properly.
2016-07-19 16:25:09 +12:00
Aldo Cortesi
d2268ddb1e ProxyConfig: --body-size-limit to Options 2016-07-19 16:25:09 +12:00
Aldo Cortesi
f24f8ce971 ProxyConfig: --cert to options
Also incidentally improve handling of invalid certificate formats.
2016-07-19 16:25:09 +12:00
Aldo Cortesi
856e1c2ba9 Move clientcers & cadir to Options
Also adds a .configure mechanism to ProxyConfig, and hooks it up to the change
event.
2016-07-19 16:25:09 +12:00
Aldo Cortesi
b1b1a1b9cf ProxyConfig: cadir to options 2016-07-19 16:25:09 +12:00
Aldo Cortesi
6908dc4d90 ProxyConfig refactor
Step two of frog boiling: move listening address and port into options. This is
the hard bit, because it touches the test suite so deeply.
2016-07-19 16:25:09 +12:00
Aldo Cortesi
9bc1514aef Unify proxy config and options
This is step 1 in a gradual "boiling frog" strategy. Decorate ProxyConfig
with an Options object.
2016-07-19 16:25:09 +12:00
Maximilian Hils
859bb8c99f Merge remote-tracking branch 'jason/ui' 2016-07-18 20:59:17 -07:00
Aldo Cortesi
e9865800a8 Console options cleanup
Use setters, use togglers, move more things out of master
2016-07-18 10:31:34 +12:00
Aldo Cortesi
ff80c7b618 file -> open throughout console 2016-07-18 10:08:05 +12:00
Aldo Cortesi
f9e4249499 Add a toggller helper to Options, start using it in mitmproxy console 2016-07-18 10:03:10 +12:00
Thomas Kriechbaumer
d9021f8505 http2: coverage++ 2016-07-17 18:07:02 +02:00
Aldo Cortesi
216e38d437 setheaders -> addon 2016-07-17 18:41:14 +12:00
Aldo Cortesi
821b97c19c Remove old ReplaceHooks code 2016-07-17 16:25:42 +12:00
Aldo Cortesi
a26cc75aab Merge pull request #1370 from cortesi/filestreamer
Some work on stream-to-file
2016-07-17 16:20:41 +12:00
Aldo Cortesi
9bf1d300d8 Some work on stream-to-file
- stream -> filestreamer throughout
- move active_flows set into FileStreamer addon
2016-07-17 16:07:29 +12:00
Aldo Cortesi
08b3af98c2 Merge branch 'master' into dumper 2016-07-17 12:53:14 +12:00
Aldo Cortesi
b5bbeb0ff3 dumper: correctly detect request replay
Fixes #1361
2016-07-17 11:11:22 +12:00
Aldo Cortesi
ca7ca8ec24 The "handled" flag on responses should not persist across calls 2016-07-17 11:06:29 +12:00
Aldo Cortesi
11bd911e45 Some mild refactoring of dumper.py 2016-07-17 11:00:36 +12:00
Aldo Cortesi
b0b3b19ad6 Extract console dump functionality into an addon
This removes all the code that deals with printing flows to screen from dump.py
into a self-contained addon.

- This fixes a bug - by moving dumping into an
addon, we now dump flows AFTER addon transformation, so we can see the changes
made.
- We get dumping "for free" in other places by simply adding the addon. It's
now easy to add dumping to console to mitmweb for debugging and development.
The same goes for external projects that derive from master.
- We also get major benefits in clarity for a frankly hairy part of our
project. Mitmdump is much clearer, and all the hairyness is now isolated for
further refactoring.
2016-07-17 10:17:02 +12:00
Maximilian Hils
f0c15aa09c @mhils can't merge 2016-07-16 00:36:26 -07:00
Maximilian Hils
afc3f6d854 Merge remote-tracking branch 'duffer/tcpflow-filter' 2016-07-16 00:19:01 -07:00
Maximilian Hils
b27d59095d Merge pull request #1306 from mitmproxy/message-body-encoding
Improve Message Body Encoding
2016-07-16 00:13:58 -07:00
Aldo Cortesi
1a1f7e6fd9 replacehooks -> addon
Also fixes a bug in header replacements in netlib that resulted in a mutable
multidict.
2016-07-16 18:37:30 +12:00
Maximilian Hils
3602fd7a36 Merge remote-tracking branch 'origin/master' into message-body-encoding 2016-07-15 23:17:57 -07:00
Maximilian Hils
a3c7c84d49 improve message content semantics 2016-07-15 22:50:33 -07:00
Shadab Zafar
fea4435dac Allow DummyFlow to match ~e, ~src and ~dst 2016-07-16 10:15:38 +05:30
Shadab Zafar
5082dc6cbd Sort filt items alphabetically 2016-07-16 10:15:38 +05:30
Shadab Zafar
6a2668d865 Add ~http and ~tcp filters 2016-07-16 10:15:38 +05:30
Shadab Zafar
262a420553 Use ~bq / ~bs for messages sent from client / server 2016-07-16 10:15:38 +05:30
Shadab Zafar
5f7d61f864 Replace http decorator with one that handles different flowtypes 2016-07-16 10:15:38 +05:30
Shadab Zafar
a7bb0f5d02 Add TCPFlow.match 2016-07-16 10:15:38 +05:30
Shadab Zafar
ffcdd02e96 Add decorator for HTTPFlow filters 2016-07-16 10:15:38 +05:30
Shadab Zafar
124b87b851 Add test for body (~b) 2016-07-16 10:15:38 +05:30
Aldo Cortesi
17305643bc console: don't let messages overwrite prompts
This renders mitmproxy unresponsive and is bad UX as well.
2016-07-16 11:48:16 +12:00
Aldo Cortesi
50f1495f29 Make mitmdump return an error exit status if errors occurred during run 2016-07-16 10:59:47 +12:00
Aldo Cortesi
33d03d916a Flash a status bar message if an error log event occurs 2016-07-16 10:39:49 +12:00
Aldo Cortesi
49b65d2ea4 Add a helper to translate a log level to a tier
This is in utils for now - we'll find a better home down the track.
2016-07-16 10:33:50 +12:00
Aldo Cortesi
91e9016ce5 Trigger "start" when scripts are reloaded. 2016-07-16 10:21:00 +12:00
Aldo Cortesi
5f23d4f5ca add_event -> add_log throughout project
"Event" is terribly over-loaded in the project, and "log" is straight-forward
and self-explanatory.
2016-07-16 10:19:06 +12:00
Aldo Cortesi
5a60f32c55 Fix log level handling
We have 4: error, warn, info and debug.
2016-07-16 09:23:52 +12:00
Aldo Cortesi
532ae7dc4a Add addons after initialisation in mitmproxy console
The main effect of this is that we now properly capture errors on startup that
were ignored before.
2016-07-16 09:22:56 +12:00
Maximilian Hils
60d2e14cb9 fix #1358 2016-07-15 00:07:32 -07:00
Aldo Cortesi
c7d0850d8f Script cleanups
- Preserve script order on config change
- Prohibit script duplicates (i.e. identical script + args)
- Various cleanups and tweaks
2016-07-15 16:35:24 +12:00
Aldo Cortesi
4ba7ce50c6 Add .start for addons and scripts
Also improve error messages, fix various unit tests
2016-07-15 14:52:34 +12:00
Clemens
5f3782dd5f change way to edit 2016-07-14 23:01:34 +02:00
Aldo Cortesi
8fee5db675 Always use PollingObserver 2016-07-14 21:33:53 +12:00
Aldo Cortesi
9f1c46e7d6 Merge branch 'master' into script 2016-07-14 20:26:34 +12:00
Aldo Cortesi
e051928f26 Add missing mitmweb option 2016-07-14 20:24:56 +12:00
Aldo Cortesi
a4127fb6d5 Add a tick event for addons and scripts, and use it for race-free reload 2016-07-14 19:54:15 +12:00
Aldo Cortesi
5b2d1c044a Tighten the tick loop
In the past, we consumed from the event queue until we were idle for a certain
amount of time (0.1s). This would cause hangs in interactive tools when there
was a stream of events, hurting responsiveness. We now wait for a maximum of
0.1s before triggering the tick loop, will be able to reduce this further down
the track.
2016-07-14 19:54:15 +12:00
Aldo Cortesi
deffed2196 Script cleanup: editing in console, Python3 compatibility fixes 2016-07-14 19:54:15 +12:00
Aldo Cortesi
b94f5fd361 Convert examples and example tests for new-style scripts
Remove the test that just loads all the example scripts for now - it's a very
low-value test, and we need to think of something better.
2016-07-14 19:54:15 +12:00
Aldo Cortesi
a6821aad8e Zap old scripts infrastructure, fix concurrency tests 2016-07-14 19:54:15 +12:00
Aldo Cortesi
a3a22fba33 First-order integration of scripts addon 2016-07-14 19:54:15 +12:00
Shadab Zafar
1266255842 Re-add deletion of stickycookies (#1355)
This was originally added in #1324 (fixing issue #1096)
but got lost during "the big refactor" (#1352)
2016-07-14 00:37:27 -07:00
Maximilian Hils
f84a23f11d minor fixes 2016-07-13 22:01:16 -07:00
Maximilian Hils
ec6fbe9eb6 make options explicit 2016-07-13 21:45:25 -07:00
Aldo Cortesi
b2c4f301cb Stream to file -> addon
This commit also clarifies a confusion about the "outfile" attribute and its
use in testing in the mitmdump master.
2016-07-14 13:52:09 +12:00
Aldo Cortesi
cf3b3d206a Zap unused imports 2016-07-14 12:45:00 +12:00
Aldo Cortesi
120465a142 Ditch StickyCookie module 2016-07-14 12:17:28 +12:00
Aldo Cortesi
00509d86a8 StickyCookies to addon 2016-07-14 12:13:14 +12:00
Aldo Cortesi
143bf0dfa9 AntiCache to addon 2016-07-14 11:24:06 +12:00
Aldo Cortesi
97b2e6d958 Add a .setter helper to Options
This returns a function that sets a named attribute, and is handy for
event-driven code like mitmproxy console.
2016-07-14 11:11:41 +12:00
Aldo Cortesi
c52d567b43 Handle OptionsError for command-line args. 2016-07-14 10:19:16 +12:00
Aldo Cortesi
a8a083a10d Move StickyAuth into addon
This is the first addon that handles an OptionsError, so this commit also demos
how this works in console. Handling of command-line erorrs is on its way.
2016-07-14 10:08:41 +12:00
Aldo Cortesi
696789b8ec func.__name__ works in both 2.7 and 3.5
Thanks to @resam and @dwfreed for pointing this out
2016-07-14 09:33:26 +12:00
Clemens
121079934e make file out ouf string to combine flow content updates via editor and fileupload 2016-07-13 20:18:04 +02:00
Clemens
f84098554a added code editor and file upload 2016-07-13 18:16:31 +02:00
Aldo Cortesi
9ab1db513f Satisfy our ruthless linting overlords 2016-07-13 23:50:25 +12:00
Aldo Cortesi
255e1eb00b Add the addons mechanism
Demonstrate how it works and interacts with Options by adding our first new
builtin: anticomp.
2016-07-13 23:45:49 +12:00
Aldo Cortesi
7f8fd3cdff Basic outline of addons
Add addons.py, integrate with our event mechanism, and change the Master API so
options is the first init argument.
2016-07-13 23:26:04 +12:00
Aldo Cortesi
c9a0fe6a0e Show how options integrates with console
This is not functional at the moment, because all mutable options are still on
master.
2016-07-13 19:15:38 +12:00
Aldo Cortesi
a20f8e9620 More powerful Options scheme
This prepares us for the addon configuration mechanism and gives us a more
flexible way to handle options changes. This changeset should spell the end of
the current anti-pattern in our codebase where we duplicate data out of options
onto the master when mutability is needed. From now on, Options can be the one
source of thruth.

- Change notifications
- Rollback on error
2016-07-13 18:45:50 +12:00
strohu
6a9407d7cc Make sudo pfctl error check Python 3 compatible
In Python 3, subprocess.check_output() returns a sequence of bytes. This change ensures that it will be converted to a string, so the substring test for the sudo error message does not raise a TypeError. This fixes the code in Python 3 while remaining compatible with Python 2.
2016-07-12 15:47:01 +01:00
strohu
6217614204 Fix is_ascii check when determining next layer 2016-07-12 13:18:58 +01:00
Clemens
544b1e3238 modify flow content 2016-07-11 19:49:58 +02:00
Thomas Kriechbaumer
7c09255298 http2: more coverage 2016-07-10 20:07:43 +02:00
Shadab Zafar
c92992f03b Move cookie expiry detection to separate function 2016-07-09 22:20:25 +05:30
Shadab Zafar
608435cabf Delete stickycookies when told by the server
Fixes #1096
2016-07-09 22:20:25 +05:30
Shadab Zafar
0a21d27004 strutils.hexdump returns native_strings 2016-07-09 12:43:21 +05:30
Shadab Zafar
147f61fa62 py3++ 2016-07-09 11:14:12 +05:30
Shadab Zafar
b4469d2579 py3++: test_dump 2016-07-09 11:14:12 +05:30
Maximilian Hils
15c10d49f6 Merge pull request #1327 from mitmproxy/remove-script-context
Remove script context
2016-07-08 20:11:12 -07:00
Maximilian Hils
5d2b7c52f9 move script context to mitmproxy.ctx 2016-07-08 19:57:57 -07:00
jpkrause
05ab9c1b37 Updated coding style and modified flow format compat test to use v0.11 and v0.10 dump files 2016-07-08 15:03:36 -07:00
jpkrause
c9482c6255 Added flow converters for versions 0.11 and 0.12 2016-07-08 12:46:28 -07:00
Jason
92026d26ea [web] update build 2016-07-08 22:01:09 +08:00
Thomas Kriechbaumer
6da166d762 http2: fix self-depended streams 2016-07-08 10:37:56 +02:00
Maximilian Hils
7c67faa8da remove script contexts 2016-07-07 23:50:55 -07:00
Maximilian Hils
76473d44e0 py3++ 2016-07-07 17:50:26 -07:00
Maximilian Hils
f62e976e1e py3++ 2016-07-07 17:29:22 -07:00
Thomas Kriechbaumer
d962bd4e83 py3++ 2016-07-07 20:25:48 +02:00
Maximilian Hils
a212ce1f63 py3++ 2016-07-07 02:30:25 -07:00
Thomas Kriechbaumer
64ac2c73fe Merge pull request #1318 from mhils/tnetstring3-unicode-type
[tests actually pass] Add unicode to tnetstring3
2016-07-07 09:48:22 +02:00
Linmiao Xu
275cf7a6c2 Detect JSON API media type as a json content view
IANA assignment here:
https://www.iana.org/assignments/media-types/application/vnd.api+json

More about JSON API:
https://github.com/json-api/json-api
2016-07-06 21:10:35 -07:00
Maximilian Hils
64a867973d sni is now str, not bytes 2016-07-06 21:03:17 -07:00
Maximilian Hils
2c37ebfc72 fix dump file cross compat between python versions 2016-07-06 19:55:48 -07:00
Maximilian Hils
d406bee988 tnetstring3: adapt to unicode support 2016-07-06 19:55:48 -07:00
Maximilian Hils
48ee3a553e add tnetstring unicode type 2016-07-06 19:55:48 -07:00
Maximilian Hils
684b4b5130 tnetstring: keys are str on py3. migrate flow.io_compat 2016-07-06 19:55:48 -07:00
Maximilian Hils
e6e839d56d add python3 tnetstring implementation 2016-07-06 19:55:25 -07:00
Maximilian Hils
9c873d63f4 py3++, multidict fixes
This commit improves Python 3 compatibility and fixes two multidict
issues:

 1. Headers.items(multi=True) now decodes fields
 2. MultiDict.clear(item) has been removed, as Python's
    MutableMapping already defines .clear() with different
    semantics. This is confusing for everyone who expects a
    dict-like object. `.pop("attr", None)` is not fantastic,
    but it's the Python way to do it.
2016-07-06 19:53:29 -07:00
Maximilian Hils
444f0a4c39 py3++ 2016-07-06 17:31:08 -07:00
Maximilian Hils
38fd1d3ad7 fix issue introduced in 72f3b2b 2016-07-06 12:14:48 -07:00
Maximilian Hils
72f3b2bb17 minor code improvement 2016-07-05 19:32:25 -07:00
Maximilian Hils
e84f5fcc72 Merge pull request #1315 from mitmproxy/better-unicode-handling
remove clean_bin, clarify unicode handling
2016-07-05 16:02:37 -07:00