Commit Graph

1089 Commits

Author SHA1 Message Date
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
Maximilian Hils
00a35aa895 Merge pull request #1297 from dufferzafar/py3-flow-export
Python 3 - test_flow_export
2016-07-05 15:17:18 -07:00
Maximilian Hils
d51cf543bb remove clean_bin, clarify unicode handling 2016-07-05 15:11:32 -07:00
Thomas Kriechbaumer
05de3b759f http2: remove forbidden headers
E.g.: send_error_reponse sets a connection header
2016-07-05 22:15:57 +02:00
Thomas Kriechbaumer
50fdb01553 prevent early priority changes 2016-07-05 21:02:19 +02:00
Thomas Kriechbaumer
64880e7ebd handle related events from h2 2016-07-05 20:14:28 +02:00
Thomas Kriechbaumer
47db346959 improve end_stream handling
To replicate requests as close as possible frame-by-frame.

This fixes an issue with broken HTTP/2 implemenation by Akamai and
Twitter, which raise an error if we send an empty DataFrame only to
indicate END_STREAM.
2016-07-05 20:14:28 +02:00
Thomas Kriechbaumer
aa1b203182 http2: implement direct handling of priority 2016-07-05 20:14:28 +02:00
Maximilian Hils
ca9de786fd minor fix 2016-07-04 15:07:01 -07:00
Maximilian Hils
a6b3551934 raise ValueError if content-encoding is invalid 2016-07-04 13:58:09 -07:00
Shadab Zafar
d361177753 h2: move header parsing to netlib 2016-07-03 18:03:34 +05:30
Shadab Zafar
f623b3d99b py3++: test_flow_export 2016-07-02 21:15:20 +05:30
Shadab Zafar
17b727321f Replace map + lambda with list comprehensions 2016-07-02 21:15:20 +05:30
Shadab Zafar
393c1d74af fix lint issues 2016-07-02 18:56:22 +05:30
Maximilian Hils
d9f797e7e6 make the linter happy 2016-07-02 02:11:00 -07:00
Maximilian Hils
6032c4f235 message.content -> .raw_content, implement .text
This PR improves our handling of HTTP message body encodings:

- The unaltered message body is now accessible as `.raw_content`
- The "content-encoding"-decoded content (i.e. gzip removed) content
  is not `.content`, as this is what we want in 99% of the cases.
- `.text` now provides the "content-encoding"-decoded and then
  "content-type charset"-decoded message body.
- The decoded values for `.content` and `.text` are cached,
  so that repeated access and `x.text = x.text` is cheap.
- The `decoded()` decorator is now deprecated, as we can now just use
  `.content`. Similarly `HTTPMessage.get_decoded_content()` is
  deprecated.
2016-07-02 01:51:47 -07:00
Maximilian Hils
fa72462798 fix tcp message handling 2016-07-01 17:17:16 -07:00
Maximilian Hils
536c7acd13 py3++ 2016-07-01 14:10:48 -07:00
Shadab Zafar
268e42e55e py3++: test/mitmproxy/test_server 2016-07-01 10:23:04 -07:00
Jason
8f73dc79c0 [web] ui ducks for content view 2016-07-01 23:44:48 +08:00
Maximilian Hils
8366c87c57 update to latest typing release 2016-06-29 03:03:23 -07:00
Maximilian Hils
025efc030a Merge pull request #1301 from mitmproxy/simplify-tox
Simplify tox
2016-06-29 02:04:38 -07:00
Maximilian Hils
f7d4319c5a minor fixes 2016-06-28 23:48:19 -07:00
Maximilian Hils
b7430c0775 Merge pull request #1296 from gzzhanghao/test
[web] add tests for ducks/utils
2016-06-28 23:16:18 -07:00
Maximilian Hils
a57ea27bd4 watchdog: always use PollingObserver 2016-06-28 22:09:12 -07:00
Maximilian Hils
3b53d3e393 fix mysterious tox issue 2016-06-28 19:26:08 -07:00
Jason
37c2b47c26 [web] add tests for utils 2016-06-27 18:42:20 +08:00
Maximilian Hils
3eb2d04aac minor fixes 2016-06-26 01:45:45 -07:00
Jason
db415a26bc [web] log only in dev 2016-06-25 10:50:15 +08:00
Jason
a782571244 [web] build with envify 2016-06-25 10:43:30 +08:00
Jason
59dc5e4687 [web] update build 2016-06-25 10:09:21 +08:00
Jason
e400e9f513 [web] ErrorView 2016-06-25 09:52:49 +08:00
Jason
2b7923b4f4 [web] fix actions 2016-06-25 02:18:52 +08:00
Jason
571c817f21 [web] add msgQueue 2016-06-25 00:36:39 +08:00
Jason
5a1677c387 Merge branch 'master' of github.com:mitmproxy/mitmproxy into list
Conflicts:
	mitmproxy/web/static/app.js
	web/src/js/app.jsx
	web/src/js/connection.js
	web/src/js/ducks/websocket.js
2016-06-24 21:04:39 +08:00
Maximilian Hils
21c3480429 Merge remote-tracking branch 'jason/websocket' 2016-06-23 23:38:19 -07:00
Jason
f392b8e34c [web] bug fix 2016-06-24 01:20:42 +08:00
Jason
c40ff0277b [web] fix bugs 2016-06-24 01:01:34 +08:00
Jason
397554b7c7 [web] update build 2016-06-23 01:30:34 +08:00
Shadab Zafar
d655d8f1f3 py3++: mitmproxy.platform.pf 2016-06-22 13:38:00 +05:30
Shadab Zafar
119021a9c3 py3++: mitmproxy.proxy 2016-06-22 13:37:16 +05:30
Jason
57af1d00dd [web] set connected to false when DISCONNECTED 2016-06-22 11:29:21 +08:00
Jason
26aed8f56f [web] updateSettings -> handleWsMsg 2016-06-22 11:24:22 +08:00
Shadab Zafar
0a53550955 mitmproxy.tnetstring -> mitmproxy.contrib.tnetstring 2016-06-21 23:53:59 +05:30
Shadab Zafar
b5d280cab1 Py3: tnetstring
Copied the initial code from
[tnetstring3](https://raw.githubusercontent.com/carlopires/tnetstring3/master/tnetstring/__init__.py)

Then made some changes, like using the isdigit function, removing
superfluous ord() etc. to make all our tests pass.
2016-06-21 23:37:28 +05:30
Jason
9a7415a58d [web] store ws object in symbol property 2016-06-22 00:51:45 +08:00
Jason
0cab9ef1fa Merge remote-tracking branch 'origin/master' into websocket
Conflicts:
	mitmproxy/web/static/app.js
	web/src/js/components/ProxyApp.jsx
2016-06-22 00:49:21 +08:00
Maximilian Hils
7ef0e37c74 Merge pull request #1273 from Kriechi/fix-default-arg
fix default arg
2016-06-20 14:52:16 -07:00
Shadab Zafar
5b95803be0 py3++ 2016-06-20 21:57:18 +02:00
Shadab Zafar
efeade134a py3++ 2016-06-20 21:39:39 +02:00
Maximilian Hils
165deb08fd Merge remote-tracking branch 'jason/settings' 2016-06-19 18:27:12 -07:00
Thomas Kriechbaumer
6ad0e3e66e fix default arg 2016-06-19 12:05:10 +02:00
Thomas Kriechbaumer
7bde38dc4a py3++ 2016-06-19 12:00:37 +02:00
Jason
d01e49c6d5 [web] replace SetttingsActions.update with settings.updateSettings 2016-06-19 02:53:15 +08:00
Doug Freed
1f915b7f24 mitmproxy/models: missed comma in __all__
Spotted by Landscape (thanks @Kriechi for pointing out the site).  Add a
comma to the last item too, to prevent this from happening in the future
and reduce messing up blame later.
2016-06-18 14:50:06 -04:00
Jason
9cb5b0af9d Merge branch 'master' of github.com:mitmproxy/mitmproxy into websocket
Conflicts:
	mitmproxy/web/static/app.js
	web/src/js/components/ProxyApp.jsx
	web/src/js/connection.js
2016-06-18 14:18:24 +08:00
Jason
6c0511b06f [web] add app ducks 2016-06-18 14:11:47 +08:00
Maximilian Hils
ce53799c62 simplify settings reducer 2016-06-17 21:03:19 -07:00
Jason
965b27b529 [web] simplify settings 2016-06-17 22:12:32 +08:00
Jason
c82d27b2a2 Merge branch 'master' into settings
Conflicts:
	mitmproxy/web/static/app.css
	mitmproxy/web/static/app.js
	web/src/js/components/ProxyApp.jsx
2016-06-17 21:58:24 +08:00
Jason
e4addd60f1 Merge branch 'master' into websocket
Conflicts:
	mitmproxy/web/static/app.css
	mitmproxy/web/static/app.js
	web/src/js/components/ProxyApp.jsx
2016-06-17 21:54:31 +08:00
Jason
034287edcf [web] clean up 2016-06-17 07:57:06 +08:00
Jason
16a28eca25 [web] websocket 2016-06-17 07:26:29 +08:00
Jason
7a78970d10 [web] common 2016-06-17 07:07:38 +08:00
Jason
6ad2f13341 [web] fix settings ducks 2016-06-17 06:01:29 +08:00
Jason
cedac98b70 [web] promot reduce 2016-06-17 05:08:05 +08:00
Jason
7fb0836bfe [web] remove store 2016-06-17 05:08:05 +08:00
Jason
99b2b8633d [web] settings store 2016-06-17 05:08:05 +08:00
Jason
f5c597a9e3 [web] Editor & Prompt 2016-06-17 04:38:35 +08:00
Jason
e5bf1e930a [web] FlowView and ContentView 2016-06-17 04:37:57 +08:00
Maximilian Hils
c7a891b652 Merge branch 'add_flow_to_options' 2016-06-15 13:40:03 -07:00
Clemens
48e372bf98 rename view -> ui, make code more readable 2016-06-15 08:54:55 +02:00
Clemens
00b4abfe83 add previous state to dispatch function 2016-06-15 00:19:33 +02:00
Clemens
003096b4cc code review 2016-06-14 22:17:34 +02:00
Clemens
bf75e14573 added flowMenu 2016-06-14 11:20:48 +02:00
Aldo Cortesi
c2b5a13e3f Don't fail when start() is not defined 2016-06-14 14:39:07 +12:00
Maximilian Hils
804efe9d38 fix contextmanager, remove args argument to start() 2016-06-13 18:08:57 -07:00
Aldo Cortesi
e7b61995ad A tiny wrapper to make script invocations nicer 2016-06-14 12:34:22 +12:00
Thomas Kriechbaumer
a5aa16e03b fix #1240 2016-06-12 11:51:49 +02:00
Aldo Cortesi
728d5caa22 Fold mitmproxy.version and pathod.version into netlib.version 2016-06-12 10:29:12 +12:00
Aldo Cortesi
7b86560ded debug: On SIGUSR2, we dump tracebacks for all threads to screen 2016-06-11 23:07:42 +12:00
Aldo Cortesi
09edbd9492 Improve debugging of thread and other leaks
- Add basethread.BaseThread that all threads outside of test suites should use
- Add a signal handler to mitmproxy, mitmdump and mitmweb that dumps resource
information to screen when SIGUSR1 is received.
- Improve thread naming throughout to make thread dumps understandable
2016-06-11 19:52:24 +12:00
Aldo Cortesi
e367b88195 Add a --sysinfo flag to all daemons
This dumps all the platform information and mitmproxy version data we'd
normally need to troubleshoot an issue.
2016-06-11 16:40:21 +12:00
Jason
c33df55919 [web] update build 2016-06-09 20:39:51 +08:00
Jason
81a0c45c89 [web] header.js -> Header.js 2016-06-09 20:35:03 +08:00
Jason
6c95635cb8 [web] eventlog.js -> EventLog.jsx 2016-06-09 18:40:59 +08:00
Jason
1baefcdc99 [web] footer.js -> Footer.jsx 2016-06-09 18:13:18 +08:00
Jason
e24bf8d73f [web] fix shortcut for header fields 2016-06-09 18:03:40 +08:00
Jason
f306cfa8b6 [web] separate flowtable to multiple files 2016-06-09 17:52:30 +08:00
Jason
6407765285 [web] update build 2016-06-09 14:22:23 +08:00
Jason
8e538c7630 [web] fix updateLocation 2016-06-09 14:20:14 +08:00
Aldo Cortesi
c421c41307 Remove odict
- Adds default implementations for _kconv and _reduce_values to MultiDict.
Without these, operations fail in really, really non-obvious ways.
- Replace the remaining few instances of ODict

Fixes #1159
2016-06-09 13:28:43 +12:00
Maximilian Hils
90cb84b536 Merge pull request #1220 from mitmproxy/add_sorting_with_redux
Add sorting with redux
2016-06-08 13:37:09 -07:00
redfast00
16d32b2ce5
fix after cleanup of netlib.utils in mitmproxy.console.statusbar 2016-06-08 13:07:19 +02:00
Clemens
ad84d650de sorting add pr review changes 2016-06-08 10:29:33 +02:00
Aldo Cortesi
a5cb241c7c If a message has been acked, all other processors are skipped
This applies the constraint, but does to clumsily. When we've unified modules
and processors it will be much nicer. We also make some exceptions for the
master processors that we may want to re-evaluate down the track.
2016-06-08 12:58:58 +12:00
Aldo Cortesi
b3bf754e53 Simplify script concurrency helpers
We now have take() to prevent double-replies.
2016-06-08 11:21:38 +12:00
Aldo Cortesi
a388ddfd78 A new interface for reply
Reply is now explicit - it's no longer a callable itself. Instead, we have:

    reply.kill()            - kill the flow
    reply.ack()             - ack, but don't send anything
    reply.send(message)     - send a response

This is part of an incremental move to detach reply from our flow objects,
and unify the script and handler interfaces.
2016-06-08 10:44:20 +12:00
Aldo Cortesi
982077ec31 Add reply.ack and reply.kill 2016-06-08 10:14:34 +12:00
Clemens
dbbda03020 sorting done, ready to review 2016-06-07 11:22:52 +02:00
Clemens
fa3ad2382b sorting done, ready to review 2016-06-07 11:07:25 +02:00
Clemens
1aac283e23 moved redux state injection closer to child 2016-06-07 11:07:25 +02:00
Clemens
ff2129773f start with sort, continue tomorrow 2016-06-07 11:07:25 +02:00
Clemens
ac2d8549e5 moved sort state to redux, missing apply sort 2016-06-07 11:07:25 +02:00
Maximilian Hils
ba466dbb35 simplify pretty_json, improve test coverage 2016-06-06 23:08:58 -07:00
Maximilian Hils
71b6e369f8 change content views: escape in raw mode, show utf8 in json 2016-06-06 22:42:11 -07:00
Aldo Cortesi
1ffc273c94 Utils cleanups
- Move more stuff that belongs in netlib.human
- Move some stuff to near the only use
- Zap mitmproxy.utils.timestamp(). I see the rationale, but we used it
interchangeably with time.time() throughout the project. Since time.time()
dominates in the codebase and timestamp() is such low utility, away it goes.
2016-06-07 17:12:52 +12:00
Maximilian Hils
38d2e6432c minor fixes 2016-06-06 19:10:19 -07:00
Aldo Cortesi
e9fb35b817 Fix lint 2016-06-06 15:02:16 +12:00
Maximilian Hils
d878122cf9 web: fix list update propagation 2016-06-05 18:43:17 -07:00
Maximilian Hils
b6ebde3b1d Merge branch 'such-redux' 2016-06-05 18:23:46 -07:00
Maximilian Hils
e6ef149a03 web: modernize flow table columns 2016-06-05 18:23:06 -07:00
Aldo Cortesi
2b19a33738 Merge pull request #1212 from mitmproxy/such-redux
web: completely move flow state to redux
2016-06-06 08:58:50 +12:00
Maximilian Hils
d53a2de0ba web: completely move flow state to redux 2016-06-04 18:53:41 -07:00
Thomas Kriechbaumer
1c4e1e049c http2: remove custom PUSH_PROMISE header 2016-06-04 11:20:10 +02:00
Thomas Kriechbaumer
ac70eaed66 http2: improve GoAway handling 2016-06-04 11:20:10 +02:00
Thomas Kriechbaumer
7f4ac6f27b http2: respect MAX_CONCURRENT_STREAMS by hold-off 2016-06-04 11:20:10 +02:00
Maximilian Hils
e880f532ad web interleave old store and redux flow state 2016-06-04 00:58:13 -07:00
Maximilian Hils
c0d08be7a6 Merge branch 'master' of https://github.com/mitmproxy/mitmproxy 2016-06-04 00:41:35 -07:00
Maximilian Hils
b02d66491c web: implement update and remove for list and view 2016-06-04 00:37:10 -07:00
Aldo Cortesi
d5532319c1 Basic ConsoleMaster tests, based on mastertester 2016-06-04 19:07:27 +12:00
Aldo Cortesi
af63a3e064 console/__init__.py -> console/master.py 2016-06-04 16:06:44 +12:00
Aldo Cortesi
f7f9cab5dc Rebase on master 2016-06-04 14:37:07 +12:00
Maximilian Hils
1b1ea98f08 web: add flows to redux state 2016-06-03 18:53:30 -07:00
Maximilian Hils
1b327f34c3 web: add redux list views 2016-06-03 18:38:25 -07:00
Maximilian Hils
d6fcd7e06d web: implement redux store fetching 2016-06-03 18:38:25 -07:00
Thomas Kriechbaumer
46d9cdd70a fix style 2016-06-03 18:57:46 +02:00
Maximilian Hils
e31aa39fc2 Merge branch 'redux-ducks' 2016-06-02 23:45:36 -07:00
Maximilian Hils
65fde7f554 Merge pull request #1190 from mitmproxy/file_menu_save_open
File menu save open
2016-06-02 23:42:35 -07:00
Maximilian Hils
5321f15def web: fix eventlog height registration 2016-06-02 23:41:32 -07:00
Maximilian Hils
7afac747a8 web: reduxify event log store 2016-06-02 23:40:30 -07:00
Maximilian Hils
7c63aa3708 web: reduxify WebSocket 2016-06-02 21:12:59 -07:00
Aldo Cortesi
1ab64da682 Merge pull request #1167 from xntrik/mark_filter
implement a toggle for viewing marked flows only in console
2016-06-03 15:05:18 +12:00
Aldo Cortesi
08e4cd2a40 Merge remote-tracking branch 'upstream/master' 2016-06-03 14:55:35 +12:00
Aldo Cortesi
25671b91bd Fix flow handling for mitmdump
Fixes #1188
2016-06-03 14:53:51 +12:00
Maximilian Hils
698d38b28e web: 🐣 2016-06-02 17:46:18 -07:00
Clemens
5e7fa349a9 final review done, nothing to change -> ready to merge 2016-06-02 21:01:22 +02:00
Maximilian Hils
9c6da08d00 fix dumpfile upload 2016-06-02 11:41:26 -07:00
Maximilian Hils
73e494770f web: add fetchApi convenience method 2016-06-02 10:34:16 -07:00
Clemens
89fc438e32 change some pr issuses 2016-06-02 10:31:24 -07:00
Clemens
a219d33430 basic file up and download working 2016-06-02 10:30:53 -07:00
Clemens
dfc033ab5f added basic file up_download functionality (not finish yet) 2016-06-02 10:30:43 -07:00
Maximilian Hils
d84610a41d web: use object spread operator
While the spread operator is not part of ES6, React also uses it for JSX.
It makes sense for us to keep it in other parts of the codebase as well.
2016-06-02 10:24:33 -07:00
Maximilian Hils
7a388560d7 use object spread operator
While the spread operator is not part of ES6, React also uses it for JSX.
It makes sense for us to keep it in other parts of the codebase as well.
2016-06-02 09:51:39 -07:00
Maximilian Hils
9e3591e3c2 add basic redux architecture, convert eventlog to redux 2016-06-02 00:04:10 -07:00
Aldo Cortesi
09da1febbd Shift a bunch more string-related functions to strutils 2016-06-02 13:04:19 +12:00
Aldo Cortesi
cccdc98426 Utils reorganisation: add netlib.strutils
Extract a number of string and format-related functions to netlib.strutils.
2016-06-02 12:31:41 +12:00
Aldo Cortesi
eaa3b308f7 Fix non-deterministic test failures in export
We had various places in the code where we relied on incidental order of dict
keys. Add a helper to multidict, and fix.
2016-06-02 11:37:18 +12:00
Aldo Cortesi
1a08048a8d Un-break mitmproxy console 2016-06-01 16:51:17 +12:00
Aldo Cortesi
137ee28bd6 Fix test suite 2016-06-01 15:10:54 +12:00
Aldo Cortesi
d60fdebc47 Fix lint harder 2016-06-01 14:50:06 +12:00
Aldo Cortesi
efbdd8d266 Merge branch 'module-imports' of github.com:mitmproxy/mitmproxy into module-imports 2016-06-01 14:43:24 +12:00
Aldo Cortesi
afcfa783ea Satisfy lint 2016-06-01 14:43:08 +12:00
Maximilian Hils
1ca45b1e64 fix imports 2016-05-31 19:35:10 -07:00
Maximilian Hils
3aa8d42b05 fix PIL import 2016-05-31 19:25:47 -07:00
Maximilian Hils
0a2e7a97cd use module-level imports only 2016-05-31 19:06:57 -07:00
Maximilian Hils
30fff1fb32 be more strict about module namespaces 2016-05-31 14:05:57 -07:00
Aldo Cortesi
42e91fcfe1 http2.frame -> http2.framereader 2016-05-31 20:32:28 +12:00
Aldo Cortesi
b2f63458fc Move human-friendly format functions to netlib.human, remove redundant implementations 2016-05-31 19:32:08 +12:00
Aldo Cortesi
ec34cae618 utils.multipartdecode -> http.multipart.decode
also

utils.parse_content_type -> http.headers.parse_content_type
2016-05-31 19:07:55 +12:00
Aldo Cortesi
6dda2b2ee5 Module is part of the name - url.decode, not url.urldecode
A pattern we need to use far more often in the codebase
2016-05-31 18:46:19 +12:00
Aldo Cortesi
4e6c9c4e93 Extract url functions from netlib.utils and move to netlib.http.url 2016-05-31 18:42:56 +12:00
Aldo Cortesi
08fbe6f111 Start cleaning up netlib.utils
- Remove http2 functions, move to http2.frame
- Remove Serializable, move to netlib.basetypes
2016-05-31 17:16:31 +12:00
Aldo Cortesi
4de4223b2d Extend pseudo-header treatment to :status on responses 2016-05-31 15:12:20 +12:00
Aldo Cortesi
9ea68ebd28 Improve handling of pseudo-headers
- The canonical source for :method, :scheme and :path are the .method, .scheme
and .path attributes on the request object.
- These pseudo-headers are stripped after reading the request, and re-inserted
just before sending.
- The :authority header remains, and should be handled analagously to the Host
header in HTTP1 with respect to display and user interaction.
2016-05-31 14:36:17 +12:00
Maximilian Hils
e3d7224e5d tell flake8 that type-annotation imports are okay 2016-05-30 02:53:58 -07:00
Maximilian Hils
89f07603ca split mitmproxy.flow into mitmproxy.flow.* 2016-05-30 01:40:09 -07:00
Clemens Brunner
6652e3a369 start of developing server side for options (#1155)
* added UI for options menu

* update UI for options menu

* update UI for options v2

* update UI for options v2

* added new btn class

* little changes

* little changes

* merge

* deleted branch

* change menu button class

* added option route + added very incomplete handler class

* moved options to settings

* added toggleinputbutton

* changed options menu

* added option for stream large bodies, but no working

* added option for stream large bodies, but no working
2016-05-29 23:34:30 -07:00
Aldo Cortesi
e8290a0eb4 Satisfy flake8 2016-05-30 12:41:44 +12:00
Maximilian Hils
2e633af5aa handle_* -> * leftovers 2016-05-29 13:01:45 -07:00
Thomas Kriechbaumer
748cbaa074 cleanup 2016-05-29 20:09:53 +02:00
Thomas Kriechbaumer
a0e4bba7aa more style cleanup 2016-05-29 15:13:08 +02:00
Thomas Kriechbaumer
e2447406cc more style cleanup 2016-05-29 13:43:20 +02:00
Thomas Kriechbaumer
8eeab37a07 more style cleanup
Use this to check:
flake8 --count mitmproxy netlib pathod examples test
2016-05-29 11:55:12 +02:00
Maximilian Hils
4544e0f337 fix docs typo 2016-05-29 02:00:30 -07:00
Aldo Cortesi
6c8ad6d894 controller.ControlError -> exceptions.ControlException 2016-05-29 20:22:30 +12:00
Aldo Cortesi
8638000cfa Add some comments to controller wrapper. 2016-05-29 20:17:35 +12:00
Aldo Cortesi
0176f50e4f Adapt examples 2016-05-29 12:54:52 +12:00
Aldo Cortesi
0a875421c5 handle_* -> *
Now that we have the controller.handler decorator, the _handler prefix
stutters.
2016-05-29 12:49:01 +12:00
Aldo Cortesi
8bb9285678 Explicitly list all events 2016-05-29 12:15:52 +12:00
Aldo Cortesi
e4f043f69c Flatten ServerMaster into Master 2016-05-29 12:01:46 +12:00
Aldo Cortesi
ed415877d4 Merge branch 'master' into solidcore 2016-05-29 11:14:46 +12:00
Thomas Kriechbaumer
7971dce223 mitmproxy: fix most flake8 offenses 2016-05-28 22:45:15 +02:00
Thomas Kriechbaumer
caee1adeb6 cleanup imports with flake8 2016-05-28 14:43:32 +02:00
Aldo Cortesi
0042653498 Be stricter about the handler call signature
Uses this to catch an error in mitmweb
2016-05-28 13:21:07 +12:00
Aldo Cortesi
804e04ef43 Zap stray debugging call 2016-05-28 12:47:26 +12:00
Aldo Cortesi
f4813d5649 Make @controller.handler inheritance-friendly
Use this to adapt mitmweb and mitproxy console
2016-05-28 12:38:07 +12:00
Aldo Cortesi
f29f6210bb Mandate that all handlers must be wrapped, make tests pass
mitmproxy, mitmdump and mitmweb masters still to be done
2016-05-28 11:00:00 +12:00
Aldo Cortesi
7c4843857b Sketch out a more solid core
- Decorator for handler methods
- Stricter checking for double-acks and non-acks
2016-05-28 11:00:00 +12:00
Christian Frichot
dbc3e72723 implement a toggle for viewing marked flows only in console 2016-05-24 07:14:05 -07:00
Thomas Kriechbaumer
ebaad91484 Merge pull request #1127 from mitmproxy/tcp-flows
mitmdump: Add Basic Support for TCP Flows
2016-05-23 20:54:14 +02:00
Maximilian Hils
354b8f84df minor fixes (#1165) 2016-05-23 11:47:16 -07:00
Maximilian Hils
c160a47e51 warn users if rfile == outfile, refs #1117 2016-05-21 15:25:57 -07:00
Thomas Kriechbaumer
e6c2e012a5 fix weight value serialization 2016-05-21 21:45:36 +02:00
Maximilian Hils
ed4c99b33a Merge pull request #1164 from Kriechi/improve-http2
Improve http2
2016-05-21 11:49:53 -07:00
Thomas Kriechbaumer
85a3a92a8a kill streams if connection gets terminated 2016-05-21 20:24:21 +02:00
Thomas Kriechbaumer
6965c93be6 implement transparent Priority updates 2016-05-21 20:17:59 +02:00
Thomas Kriechbaumer
f7ce8e219e fix typo 2016-05-21 18:35:29 +02:00
Thomas Kriechbaumer
0cb2e656cd immediately send push to client 2016-05-21 17:42:47 +02:00
Maximilian Hils
dcad3f72af Merge branch 'issue-1099' 2016-05-20 20:02:56 -07:00
Aldo Cortesi
97f3077082 Merge branch 'mhils-multidict' 2016-05-21 15:01:19 +12:00