Commit Graph

9832 Commits

Author SHA1 Message Date
Maximilian Hils fdde9ba3b3 use Python 3.9+ typing 2022-04-26 13:53:23 +02:00
Maximilian Hils 08b8310133 drop support for Python 3.8 2022-04-26 13:53:04 +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 2959750124
Merge pull request #5292 from mitmproxy/memoryleak
Fix Memory Leaks
2022-04-25 12:52:43 +02:00
Maximilian Hils e88d5764c3 make `asyncio_utils.create_task` infallible 2022-04-25 11:28:50 +02:00
Maximilian Hils 39e866f2d2 fix asyncio exception handler
it needs to work for contexts without exception.
2022-04-25 11:28:50 +02:00
Maximilian Hils c8d8e303a8 lint 2022-04-25 11:28:50 +02:00
Maximilian Hils c6276a0d57 debug: improve memory output 2022-04-25 11:28:50 +02:00
Maximilian Hils 527cb10d36 fix somewhat embarassing memory leak 2022-04-25 11:28:50 +02:00
Maximilian Hils 035b3bf37d drop HTTP streams that are completed, fix #4456 2022-04-25 11:28:50 +02:00
Maximilian Hils 56eea20f63 tutils: add BytesMatching placeholder 2022-04-25 11:28:50 +02:00
Maximilian Hils 0600e8b4bc debug signals: stay alive by default 2022-04-25 11:28:50 +02:00
Maximilian Hils b027d1ebc0
Merge pull request #5232 from Meitinger/dns
Add DNS support.
2022-04-24 23:17:23 +02:00
Maximilian Hils 330243f2ab dns: improve web display, coverage++ 2022-04-24 23:09:11 +02:00
Maximilian Hils f6554924ee fix nits 2022-04-24 22:14:10 +02:00
Lukas Kreft 166f20d5b9
Extend Android onboarding documentation (#5289)
Co-authored-by: Lukas Kreft <mail@lkreft.de>
2022-04-24 19:13:51 +02:00
Maximilian Hils 6881332a21 `Flow.live`: fix default value for subclasses 2022-04-24 19:06:44 +02:00
Maximilian Hils 4f6da5180e make sure that dns flows are not live by default 2022-04-24 19:06:43 +02:00
Maximilian Hils f253a65a46 console: test that flow detail views don't crash 2022-04-24 19:06:43 +02:00
Maximilian Hils 16cb605864 flowfilter: fix asset inconsistency 2022-04-24 19:06:43 +02:00
Maximilian Hils 886a752add dns: mark classvars as such 2022-04-24 19:06:43 +02:00
Manuel Meitinger afdd3db07c [dns] extend filt.peg 2022-04-24 18:20:52 +02:00
Manuel Meitinger ffca36cf9b [dns] set timeout to 20 seconds 2022-04-24 16:24:16 +02:00
Manuel Meitinger ebaacfd850 [dns] additional intercept test 2022-04-24 15:25:07 +02:00
Manuel Meitinger bda488d871 [dns] flowfilter url test 2022-04-24 15:09:06 +02:00
Manuel Meitinger 4229c7c85c [dns] offline tests for proxyserver 2022-04-24 14:56:55 +02:00
Manuel Meitinger dd61b21ce3 [dns] offline dns_resolve tests at 100% coverage 2022-04-24 14:28:11 +02:00
Maximilian Hils 2b26824553
fix #5285 2022-04-24 00:16:42 +02:00
Manuel Meitinger 0553b73d36 [dns] 100% coverage 2022-04-23 23:31:41 +02:00
Manuel Meitinger 99bcfb7f55 [dns] move resolve code into addon 2022-04-23 22:45:51 +02:00
Manuel Meitinger c821d02e09 [dns] update layer tests and bugfix 2022-04-23 21:57:22 +02:00
Manuel Meitinger c1761033d9 [dns] put DNS id into connection id 2022-04-23 21:22:40 +02:00
Manuel Meitinger 08df89618e Merge branch 'dns' of https://github.com/Meitinger/mitmproxy into dns 2022-04-23 20:51:49 +02:00
Manuel Meitinger f9b55385df [dns] fix issue with rr records containing compressed names 2022-04-23 20:51:41 +02:00
Maximilian Hils fab7016b31 beautify flowtable dns entries
this isn't perfect (the whole table needs to be refactored properly),
but good enough for now.
2022-04-23 20:05:42 +02:00
Maximilian Hils 196c881971 flowfilter: match `~u` on DNS name
`~u` is special in that it is matched naked, i.e. a filter of `foo`
is interpreted as `~u foo`. We want `example.com` to match on DNS
queries for example.com.
2022-04-23 20:03:53 +02:00
Maximilian Hils 51b640b600 skip internet tests, fix nits 2022-04-23 19:03:25 +02:00
Maximilian Hils af1974b301 `-> Coroutine` -> `async def`
this results in nicer tracebacks
2022-04-23 18:49:17 +02:00
Maximilian Hils 8b731ed770 temporary stopgap for `timestamp_tcp_setup` 2022-04-23 18:49:16 +02:00
Maximilian Hils 9c33870ac8 move DNS resolution into own addon, `simple` -> `regular` 2022-04-23 18:49:16 +02:00
Maximilian Hils b42b3ce1ad
CI: make sure that tests run without internet connection (#5284) 2022-04-23 16:44:19 +00:00
Maximilian Hils 0407d9697b proxy modes: use mitmproxy terminology
We consistently use "reverse proxy" and not "forward proxy",
so we should do the same for DNS. Also removed "custom" mode.
If users want such things, the correct approach is to specify a reverse
proxy and set `.response` in the request hook (similar to how it works for HTTP)
2022-04-23 17:05:30 +02:00
Maximilian Hils 2bc43fc10d self-connect: don't resolve
resolving domains here would leak DNS requests if the user aborts,
we don't want that. It's very much a heuristic only anyways.
2022-04-23 16:50:55 +02:00
Maximilian Hils 74f0965a0b `Connection.protocol` -> `Connection.transport_protocol`
This is less ambiguous. Also use a string literal to simplify things.
2022-04-23 16:42:11 +02:00
Maximilian Hils c17e3a16ec dumper: improve dns query display 2022-04-23 16:12:28 +02:00
Maximilian Hils 5c9ab2e774 `str` -> `to_str`
`str` is a bit of a footgun because it overrides the builtin `str()` if imported directly.
2022-04-23 13:34:04 +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
Maximilian Hils d9338f80a2 exterminate BypassInitStateObject
idea and intent were good, I merely want to keep things aligned with other StateObject
subclass implementations to simplify some planned refactorings for StateObject.
2022-04-23 13:11:50 +02:00
Maximilian Hils 7b84848be2 fix save addon memory leak
introduced by copying the also-broken `request()` implementation.
7004d694b7 will fix it there next week.
2022-04-23 12:48:34 +02:00