Commit graph

48 commits

Author SHA1 Message Date
Maximilian Hils
dc8ff24685 don't remove add_log but deprecate it. 2022-09-18 13:45:37 +02:00
Maximilian Hils
c69239bb90 switch to stdlib logging
mitmproxy previously used a homegrown logging mechanism based around
`mitmproxy.ctx.log` and the `add_log` hook. This worked well for everything
we control, but does not work outside the mitmproxy universe.
For now we have simply ignored logging in e.g. tornado or h2, but with the
upcoming introduction of mitmproxy_wireguard we now have a dependency
on some Rust/PyO3 code for which we definitely want logs, but which also
cannot easily be changed to use our homegrown logging (PyO3 does the heavy
lifting to add interoperability with stdlib logging). Long story short,
we want to introduce a log handler for stdlib logging.

Now there are two ways how such a handler could operate:

 1. We could build a handler that forwards all stdlib log events
    into our homegrown mechanism.
 2. We embrace stdlib's logging as the correct way to do things,
    and get rid of our homegrown stuff.

This PR follows the second approach by removing the `add_log` hook and
rewriting the `TermLog` and `EventStore` addons to listen for stdlib log records.
This means that all `mitmproxy.ctx.log.info` events are now simply `logging.info` etc.

One upside of this approach is that many parts of the codebase now don't depend
on the existence of `mitmproxy.ctx` and we can use off-the-shelf things like pytest's
`caplog`. We can also now better colorize log output and/or add timestamps.
2022-09-17 17:28:35 +02:00
Manuel Meitinger
cd4a74fae7
Add support for raw UDP. (#5414) 2022-07-27 02:20:30 +02:00
Maximilian Hils
633130e208
add mode_specs docs, remove @classmethod @property usage (#5485)
`@classmethod @property` is deprecated in Python 3.11.
2022-07-25 14:16:12 +00:00
Maximilian Hils
49c7f09a94 adjust to changes in pdoc 12 2022-05-15 19:16:36 +02:00
Maximilian Hils
b3587b52b2 make it black! 2022-04-28 19:11:10 +02:00
Maximilian Hils
fdde9ba3b3 use Python 3.9+ typing 2022-04-26 13:53:23 +02:00
Maximilian Hils
b31ad66225 autoflake --in-place **/*.py 2022-04-26 13:52:46 +02:00
Maximilian Hils
e83ec8390a pyupgrade --py39-plus **/*.py 2022-04-26 13:51:11 +02:00
Maximilian Hils
8d6a279818 add very basic DNS API docs
the rest still needs to be done, but this should serve as a template
2022-04-23 13:33:18 +02:00
Manuel Meitinger
f1d937bf4b Merge branch 'main' of https://github.com/mitmproxy/mitmproxy into dns 2022-03-29 22:43:08 +02:00
Maximilian Hils
beb49ab121 don't use #noqa for imports 2022-03-29 13:51:08 +02:00
Manuel Meitinger
af2251c2ef [dns] minor fixes 2022-03-27 15:23:59 +02:00
Maximilian Hils
a7d473c1c1 fix compatibility with Python <3.10 2022-03-15 19:50:06 +01:00
Maximilian Hils
1af095bcf8 docs: fix options generation, add anchors 2022-03-15 19:02:43 +01:00
Maximilian Hils
2d2a9f3c52
adjust to template changes in pdoc 10 (#5132) 2022-02-14 15:07:20 +00:00
Maximilian Hils
3cb87f5a2f split tls_handshake hook into client/server and success/fail variants 2021-11-22 10:23:21 +01:00
Maximilian Hils
017344dfe4 tls: api docs++ 2021-09-04 17:03:26 +02:00
Maximilian Hils
9f39e2f387 tests++ 2021-09-04 16:03:06 +02:00
Maximilian Hils
a3eca0b859 socks5 upstream auth: use proxyauth option 2021-08-25 17:23:49 +02:00
Maximilian Hils
5b4ac96f4c
Merge pull request #4650 from mhils/prinzhorn
[WIP] Fix WebSocket/TCP injection
2021-07-15 13:18:33 +02:00
Alexander Prinzhorn
aee4df7c4a
remove websocket_error event, fixes #4674
Technically there is no websocket error but different close codes. Similar to how an internal server error is not an error in HTTP, but just a different status code.
2021-07-14 09:09:59 +02:00
Alexander Prinzhorn
eef6522a5e remove websocket_error event, fixes #4674 2021-07-12 16:35:25 +02:00
Alexander Prinzhorn
d4bc25fce9
separate tls_start hooks for client and server, fixes #4665, refs #4547 (#4666) 2021-07-09 20:15:38 +02:00
Maximilian Hils
1858564b91 add WebSocketMessage.text 2021-06-22 17:39:55 +02:00
Maximilian Hils
76f0b8f65e fix tests 2021-06-15 10:45:26 +02:00
Peter Dave Hello
b9f9094ec7
docker: clean up tmux dir in clirecording Dockerfile (#4542) 2021-04-05 10:08:57 +02:00
Maximilian Hils
ead33008bc master branch -> main branch 2021-03-30 15:30:45 +02:00
Peter Dave Hello
c3ae2d98db
Refactor docs clirecording Dockerfile (#4484)
* Delete apt-get lists after apt-get install in docs Dockerfile

* Prevent pip install cache in docs Dockerfile

* Prevent additional & unnecessary apt packages in docs Dockerfile
2021-03-08 17:18:39 +01:00
Peter Dave Hello
d0e4a82de8 Speed up git clone in docs Dockerfile 2021-03-03 15:56:23 +08:00
Maximilian Hils
805aed4f6a docs++ 2021-02-13 00:13:37 +01:00
Maximilian Hils
0ab59e5524 docs++ 2021-02-05 22:04:45 +01:00
Maximilian Hils
51193f1d20 api docs++ 2021-02-05 09:15:54 +01:00
Maximilian Hils
a7d1f32c89 docs: first prototype to link from events to API reference 2021-02-05 09:15:54 +01:00
Maximilian Hils
09beb1aa13 docs: add api reference using pdoc 2021-02-05 09:15:54 +01:00
Maximilian Hils
81f8f06a11 converge on hooks, events, and commands 2021-01-05 22:00:54 +01:00
Maximilian Hils
6c0e4f1cb7 streamline event/hook/command naming conventions 2021-01-05 21:54:44 +01:00
Maximilian Hils
90df4168f8 coverage++ 2021-01-05 21:54:44 +01:00
Maximilian Hils
667cacba3f generate event documentation from source 2021-01-05 21:54:44 +01:00
Martin Plattner
ed918cca87 fix linting error 2020-09-04 18:51:02 +02:00
Martin Plattner
88d43b51bb tweak cli recordings 2020-09-04 18:45:54 +02:00
Martin Plattner
d305c973f5 merge CliDirector and MitmCliDirector 2020-09-04 15:22:04 +02:00
Martin Plattner
129c03e51a integrate feedback 2020-09-04 15:02:58 +02:00
Martin Plattner
b6d52fc8ab add cli recording scripts 2020-09-03 17:44:00 +02:00
Maximilian Hils
08895e9ba6 restructure examples
- restructure examples (fix #4031)
 - remove example dependencies from setup.py,
   we do not need special dependencies for our supported addons.
 - unify how we generate docs from code
 - improve example docs
2020-06-23 16:00:14 +02:00
Thomas Kriechbaumer
f6699792da docs: add auto-generated options reference 2018-03-25 13:42:55 +02:00
Maximilian Hils
0e62e386c0 docs: add skeleton for options script 2018-03-24 23:14:58 +01:00
Aldo Cortesi
982508d30f All new documentation
This patch does a lot.

- Ditch sphinx in favor of hugo. This gives us complete control of the layout
and presentation of our docs. Henceforth, docs will be hosted on our website
rather than ReadTheDocs.
- Create a simple, clean doc layout and theme.
- Remove large parts of the documentaion. I've ditched anything that was a)
woefully out of date, b) too detailed, or c) too hard to maintain in the long
term.
- Huge updates to the docs themselves: completely rewrite addons documentation,
add docs for core concepts like commands and options, and revise and tweak a
lot of the existing docs.

With this patch, we're also changing the way we publish and maintain the docs.
From now on, we don't publish docs for every release. Instead, the website will
contain ONE set of docs for each major release. The online docs will be updated
if needed as minor releases are made. Docs are free to improve during minor
releases, but anything that changes behaviour sufficiently to require a doc
change warrants a new major release. This also leaves us free to progressively
update and improve docs out of step with our release cadence.

With this new scheme, I feel CI over the docs is less important. I've removed
it for now, but won't object if someone wants to add it back in.
2018-02-22 18:07:58 +13:00