Commit Graph

8092 Commits

Author SHA1 Message Date
Aldo Cortesi
e8dac2d290 client replay: revert our changes if replay is aborted 2018-04-30 17:19:39 +12:00
Aldo Cortesi
236a2fb6fd client replay: re-design
Re-design the way client replay works. Before, we would fire up a thread,
replay, wait for the thread to complete, get the next flow, and repeat the
procedure. Now, we have one replay thread that starts when the addon starts,
which pops flows off a thread-safe queue. This is much cleaner, removes the
need for busy tick, and sets the scene for optimisations like server connection
reuse down the track.
2018-04-30 17:17:03 +12:00
Aldo Cortesi
28d53d5a24 client replay: move all client replay-related code into addon 2018-04-27 16:34:56 +12:00
Aldo Cortesi
bc3ace6082
Merge pull request #3082 from p1uymi/patch-2
Changed syntax of two options (from v2 to v3)
2018-04-27 11:20:20 +12:00
Aldo Cortesi
abc36a5f6b
Merge pull request #3083 from mitmproxy/requires-io-master
[requires.io] dependency update on master branch
2018-04-27 11:19:34 +12:00
requires.io
b3f3e97377 [requires.io] dependency update 2018-04-27 00:11:43 +02:00
requires.io
710880a652 [requires.io] dependency update 2018-04-26 22:41:36 +02:00
p1uymi
93a59acaeb
Changed syntax from v2 to v3
--client-certs = v2 syntax --> --set client_certs=value = v3 syntax
--cadir = v2 syntax --> --set cadir=value = v3 syntax
2018-04-26 16:14:27 +02:00
Aldo Cortesi
a4a48a96d6
Merge pull request #3078 from kajojify/expanduser
Fix #3002. Auto-expanding for tilda.
2018-04-26 21:02:10 +12:00
Miroslav
a42443b029 Incompatible types 2018-04-26 08:41:48 +03:00
Miroslav
d7abdd86e8 Lint 2018-04-26 08:21:46 +03:00
Aldo Cortesi
13f3cbed4f
Merge pull request #3076 from clyfish/keepalive
add SO_KEEPALIVE
2018-04-26 11:49:34 +12:00
Aldo Cortesi
b18e0fa2bc
Merge pull request #3071 from cortesi/tickless
asyncio: shift script reloading out of the tick event
2018-04-26 11:47:07 +12:00
Miroslav
ea6fab09b5 Fix #3002. Auto-expanding 2018-04-26 01:35:44 +03:00
Maximilian Hils
5546f0a05e
Merge pull request #3077 from mhils/pytest-fix
Fix pytest invocation errors
2018-04-25 06:15:28 -06:00
Maximilian Hils
19ceb6f49a fix pytest invocation errors 2018-04-25 14:00:50 +02:00
Cheng Liangyu
c7ce8a8343 add SO_KEEPALIVE 2018-04-25 17:50:59 +08:00
Aldo Cortesi
95e690ba31 test: shift test_data out of our public API 2018-04-23 19:16:33 +12:00
Aldo Cortesi
0ba10b6109 addons/script: improve relability of reload test
The granularity of mtime is surprisingly bad. Make the tests more robust
against this, and promote has_log back to a public method, now that we have a
few legitimate examples.
2018-04-23 13:19:20 +12:00
Aldo Cortesi
44016a0de5 asyncio: shift script reloading out of the tick event
The tick event is a nasty compromise, left over from when we didn't have an
event loop. This is the first patch in a series that explores moving our
built-in addons to managing coroutines on the eventloop directly for periodic
tasks.
2018-04-23 10:28:18 +12:00
Thomas Kriechbaumer
f6b606b364
Merge pull request #3070 from CorTal/Fix#3066
Fix asyncio.call_soon -> asyncio.ensure_future
2018-04-18 16:38:52 +02:00
CorTal
ab01406585 call_soon->ensure_future 2018-04-18 10:31:43 +02:00
Aldo Cortesi
6d5c8781e2
Merge pull request #3069 from cortesi/mweb
A grab-bag of mitmweb-related fixes
2018-04-18 09:17:14 +12:00
Aldo Cortesi
e6538cdb1f mitmweb: don't blort all over my config file
Temporarily disable config saving until we can look at this more closely.
Config saving should:

- Only happen when explicitly requested by the user
- Only save changed values
2018-04-18 09:01:42 +12:00
Aldo Cortesi
bca0275427 tcp: As of Python 3.5, EINTR is retried automatically by select
See https://www.python.org/dev/peps/pep-0475/
2018-04-18 08:22:26 +12:00
Aldo Cortesi
8396244729 mitmweb: shift to use new run_loop wrapper on master
Fixes #3067
2018-04-18 08:21:08 +12:00
Aldo Cortesi
633023701b
Merge pull request #3064 from cortesi/mexit
asyncio: fix exit behaviour for console
2018-04-18 07:58:51 +12:00
Aldo Cortesi
df83c0eef7 asyncio: fix exit behavior for console
- Add a master.run_loop function. This encapsulates our run behaviour so that
it can be used by implementations that need to manage their own run loop (like urwid).
- Shift crash exit message to the common core. I'm not convinced we really need
this, but if we want it it should be centralised.
- Clean up an extra exception that can be thrown by asyncio itself on "dirty"
termination after a mitmproxy crash.
2018-04-17 10:42:40 +12:00
Aldo Cortesi
14aa61b6b1
Merge pull request #3063 from cortesi/sigs
Ignore signal errors on windows + various fixes
2018-04-17 10:18:45 +12:00
Aldo Cortesi
ef4db52887 Ignore signal errors on windows + various fixes
- Ignore the NotImplementedError raised by add_signal_handler on Windows.
- Entrypoints return an integer exit code, or None. Adjust our type annotations
and code to suit.

Fixes #3061
2018-04-17 08:20:52 +12:00
Aldo Cortesi
754cb6cac9
Merge pull request #3048 from cortesi/qbench
Improve benchmarking
2018-04-17 07:35:12 +12:00
Aldo Cortesi
565146311a asyncio: clarify shutdown semantics
This patch clarifies proxy shutdown, and specifies that the master.shutdown()
method is thread-save.
2018-04-16 10:16:51 +12:00
Aldo Cortesi
850c855495 Clean up test/helper_tools directory 2018-04-16 09:20:22 +12:00
Aldo Cortesi
b663a224a3 Improve benchmarking
- The benchmark addon now manages setting up and tearing down the backend and
traffic processes itself.
- Use wrk instead of hey. I get more consistent results with this tool, and hey
shows a strange tail-latency bump that seems artificial.
- Make termination behaviour simpler. The bencmark revealed a bug where .done
events were not called if the proxy was shut down by an addon.
2018-04-16 09:19:14 +12:00
Aldo Cortesi
5f74adc2df
Merge pull request #3059 from obscure76/enh/issue-3053
fix Python 3.6 variable type annotations #3053
2018-04-16 07:35:20 +12:00
oscure76
0e984e1442 fix Python 3.6 variable type annotations #3053 2018-04-14 16:24:41 -07:00
Aldo Cortesi
865a373bd3
Merge pull request #3050 from kira0204/error-script
Handling user script's exceptions, fix #2839
2018-04-15 10:12:44 +12:00
Aldo Cortesi
cabb788072
Merge pull request #3057 from mitmproxy/requires-io-master
[requires.io] dependency update on master branch
2018-04-15 10:03:54 +12:00
Aldo Cortesi
4e126c0fba
Merge pull request #3056 from cortesi/readfile
readfile fixes
2018-04-15 10:03:30 +12:00
requires.io
09e125396c [requires.io] dependency update 2018-04-14 19:10:15 +02:00
Aldo Cortesi
909a02ea03 mitmdump: also set dumper_filter to default filter on startup
Fixes #3051
2018-04-14 13:30:13 +12:00
requires.io
84af021c1b [requires.io] dependency update 2018-04-14 02:56:00 +02:00
Aldo Cortesi
5eb17bbf6d
Merge pull request #3054 from Kriechi/fix-example
fix example filename
2018-04-14 12:15:59 +12:00
Aldo Cortesi
8609de6f31 readfile: add a readfile_filter option
* Add a readfile_filter option that filters flows on read.
* Adjust test suite for asyncio.
* Add asynctest as a dev dependency.
2018-04-14 11:52:02 +12:00
Aldo Cortesi
214498f01c asyncio: adjust readfile.py addon for async 2018-04-14 11:52:02 +12:00
Thomas Kriechbaumer
fe699e555f fix example filename 2018-04-13 09:09:24 +02:00
Maximilian Hils
660aa87a24
fix GA id 2018-04-11 16:58:09 -06:00
kira0204
6780e5025a Handling user script exceptions, fix #2839 2018-04-10 08:33:40 +05:30
Aldo Cortesi
5e2a1ec23c
Merge pull request #3035 from cortesi/aiosimpler
asyncio consolidation
2018-04-07 09:37:58 +12:00
Aldo Cortesi
9dcd15d350 asyncio: ditch the handler context
There are a few reasons for this. First, logs are now async, and can be called
at any time. Second, the event loop is thread local, so there can only ever be
one master per thread. These two things together completely obviate the need
for a handler context.
2018-04-07 09:04:14 +12:00