Commit Graph

35 Commits

Author SHA1 Message Date
Aldo Cortesi
e6eeab6094 Revamp how addons work
- Addons now nest, which means that addons can manage addons. This has a number
of salutary effects - the scripts addon no longer has to poke into the global
addons list, we no longer have to replace/remove/boot-outof parent addons when
we load scripts, and this paves the way for making our top-level tools into
addons themselves.
- All addon calls are now wrapped in a safe execution environment where
exceptions are caught, and output to stdout/stderr are intercepted and turned
into logs.
- We no longer support script arguments in sys.argv - creating an option
properly is the only way to pass arguments. This means that all scripts are
always directly controllable from interctive tooling, and that arguments are
type-checked.

For now, I've disabled testing of the har dump example - it needs to be moved
to the new argument handling, and become a class addon. I'll address that in a
separate patch.
2017-04-25 22:13:44 +12:00
Maximilian Hils
98a079aa69 rename logging.py example. this conflicted with Python's stdlib 2016-12-19 16:21:17 +01:00
Aldo Cortesi
007aeef770 Addon test docs, remove stray deprecated events
Fixes #1572
2016-12-17 10:03:35 +13:00
Thomas Kriechbaumer
3353aa3cfd fix docs 2016-11-23 10:18:45 +01:00
Thomas Kriechbaumer
aaa4ccc284 websocket: add event documentation 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
9af8f4bb31 organize examples
This commit is largely based on work by Thiago Arrais (@thiagoarrais)
and Shane Bradfield (@l33tLumberjack). I wasn't really able to get their
PR reasonably merged onto the latest master, so I reapplied their changes
manually here and did some further improvements on that.
2016-11-21 02:28:10 +01:00
Quentin Pradet
eb7bcb37ec
docs: Fix typos 2016-11-14 08:43:32 +04: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
a9b4560187 Refine handling of HTTP CONNECT
- CONNECT requests do not generate the usual http events. Instead, they
generate the http_connect event and handlers then have the option of setting an
error response to abort the connect.
- The connect handler is called for both upstream proxy and regular proxy CONNECTs.
2016-11-12 18:28:37 +13:00
Aldo Cortesi
0b2a2ad2a6 docs: examples/logging -> examples/context_logging 2016-10-30 16:58:50 +13:00
Aldo Cortesi
e73c7fe77e mitmproxy.protocol -> mitmproxy.proxy.protocol
The protocols here are compltely proxy-specific, are only used from within the
proxy module, and are not exposed to users.
2016-10-19 23:11:56 +13:00
Aldo Cortesi
24cf8da27e Move all tools into mitmproxy.tools, move models/* to top level
The primary motivation here (and for all the other moving around) is to present
a clean "front of house" to library users, and to migrate primary objects to
the top of the module hierarchy.
2016-10-19 20:26:05 +13:00
Aldo Cortesi
22eebfd574 addons.Addons -> addonmanager, builtins -> addons 2016-10-19 14:39:39 +13:00
Aldo Cortesi
00603021d9 docs: concurrency, developing scripts 2016-10-16 20:39:34 +13:00
Aldo Cortesi
57b8ed21a9 docs: scripts on saved flows 2016-10-16 20:26:06 +13:00
Aldo Cortesi
55cb2a8547 docs: logging and the context 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
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
Aldo Cortesi
b735694653 websockets_handshake -> websocket_handshake
The plural feels awkward.
2016-10-04 08:13:56 +11:00
Maximilian Hils
19abb54919 fix docs 2016-10-02 23:08:51 -07:00
Thomas Kriechbaumer
823d8a5da8 add docs for websocket_handshake hook 2016-09-01 09:57:36 +02:00
Maximilian Hils
7c67faa8da remove script contexts 2016-07-07 23:50:55 -07:00
Maximilian Hils
588dad1bc7 minor docs fix 2016-06-26 14:42:12 -07:00
Maximilian Hils
63c6660895 update examples, tests, docs 2016-06-13 18:17:09 -07:00
Maximilian Hils
d84fc645a7 docs: minor fixes 2016-04-30 15:25:02 -07:00
Maximilian Hils
14e9b0a0ac docs: better data structure docs 2016-04-11 14:13:48 -07:00
Aldo Cortesi
08f44b9fad Doc tweaks
This patch does the following:

- Fixes all warnings in the doc tree
- Adds a modd + devd conf file that renders HTML and treats doc warnings as
errors. This lets you send warning output to your desktop notifier, and gives
livereload similar to the livehtml entry in the Makefile.
- Some small tweaks

Sphinx currently has a bug that causes unknown options to generate a warning:

https://github.com/sphinx-doc/sphinx/issues/2229

This is fixed in stable, but not yet released. You can update Sphinx to the
latest stable like so:

pip install --upgrade https://github.com/sphinx-doc/sphinx/archive/stable.zip
2016-02-21 11:47:17 +13:00
Aldo Cortesi
92597f82ea Docs and examples to top level 2016-02-18 09:27:08 +13:00
Maximilian Hils
33fa49277a move mitmproxy 2016-02-15 14:58:46 +01:00
Michael J. Bazzinotti
e766838a1a Add Inline Script Hooks to TCP mode 2016-01-10 13:05:01 -05:00
Maximilian Hils
b4013659a8 docs 🎉 2015-09-06 03:20:58 +02:00
Maximilian Hils
1165e35e1b docs++ 2015-09-05 20:15:35 +02:00
Maximilian Hils
74b3b842fe rewrite basic docs for readthedocs 2015-09-04 16:17:55 +02:00