Aldo Cortesi
2e48b60ff1
Clarify channel interaction pattern
...
Before this patch, it wasn't clear when the arguments to an event could be
modified, and when a new object should be returned. After this patch, the right
thing to do is to modify the arguments in 99% of cases. The only exception to
this is root_layer, for which we can find a better structure down the track.
2016-10-04 08:13:56 +11:00
Aldo Cortesi
1ae73b9157
Add requestheaders event
...
HTTP1 only for now, HTTP2 coming next.
2016-10-04 08:13:56 +11:00
Thomas Kriechbaumer
36c04f1631
fix flowfilter.match args
2016-10-03 12:04:17 +02:00
Thomas Kriechbaumer
bb60b76af4
use flowfilter.match
2016-10-03 11:45:54 +02:00
Thomas Kriechbaumer
ba84248910
rename mitmproxy.filt -> mitmproxy.flowfilter
2016-10-03 11:45:54 +02:00
Maximilian Hils
611dad12a7
Revert "Add API to programmatically create new requests ( #1534 )"
...
This reverts commit ccbdcd684b
,
which yielded a test timeout.
2016-10-02 23:08:51 -07:00
Tyler St. Onge
ccbdcd684b
Add API to programmatically create new requests ( #1534 )
2016-10-01 13:06:59 +02:00
Aldo Cortesi
b21f076cc8
Merge branch 'multi-cookie' of https://github.com/dufferzafar/mitmproxy
2016-09-28 12:44:40 +10:00
Ryan Laughlin
ad6d675b20
In reverse proxy mode, always send SNI
2016-09-27 10:49:04 -04:00
Shadab Zafar
e8ffc5167b
Can't have , in the sticky cookie test
...
Since we support comma separated cookies now
2016-09-27 16:44:09 +05:30
Maximilian Hils
eeec17902f
update dependencies, minor fixes ( #1577 )
2016-09-24 21:01:48 -07:00
Maximilian Hils
0a643ad20f
remove option argument for addons.add ( #1576 )
2016-09-24 18:21:12 -07:00
Maximilian Hils
9142da1a7d
Merge pull request #1566 from mhils/issue-1546
...
add websocket on/off switch, improve logging (fix #1546 , fix #1547 )
2016-09-22 03:06:39 -07:00
Maximilian Hils
77868434e7
fix tests
2016-09-22 02:10:02 -07:00
Maximilian Hils
a3329c5a80
scripts: cut traceback properly, fix #1467
2016-09-22 02:03:12 -07:00
Aldo Cortesi
cfb943bfdd
Redesign client replay
...
- Move to an addon
- Use a much simpler synchronisation mechanism
2016-09-11 20:00:34 +12:00
Aldo Cortesi
6b9221ffeb
Add "run_once" support to the script addon, use it in mitmproxy
...
Fixes #1418
2016-09-11 13:22:01 +12:00
Aldo Cortesi
9b814ca067
options.replay_ignore* -> options.server_replay_ignore*
2016-09-10 10:21:52 +12:00
Aldo Cortesi
8677e91074
options.nopop -> options.server_replay_nopop
2016-09-10 10:09:07 +12:00
Aldo Cortesi
5ebe8c1bc8
options.rheaders -> options.server_replay_use_headers
2016-09-10 10:09:07 +12:00
Aldo Cortesi
b0213a2c0e
options.kill -> options.replay_kill_extra
2016-09-10 10:09:07 +12:00
Aldo Cortesi
4ff8a72521
Roll out synchronisation for mitmproxy tests
...
This extends some of the work I did for pathod and netlib to the mitmproxy test
suite. It also fixes what may be a leak in replays.
Failing on connection leak is disabled on Windows for the moment.
Fixes #1535
2016-09-10 09:18:11 +12:00
Aldo Cortesi
9abdd3a8d9
Move server playback in to an addon
...
- Move server playback into an addon
- Implement a better sync strategy to decide when to exit if keepserving is
off. We now wait for the final flow played back to no longer be live.
- Leave interactive server playback in mitmproxy console broken for now - there
are broader addon-related changes that need to be made for that, and this patch
is already big.
Fixes #1229
2016-09-06 23:48:02 +12:00
Thomas Kriechbaumer
69b770469e
http2: assemble connect-request from object
2016-09-03 12:31:35 +02:00
Thomas Kriechbaumer
ea2a51d3be
http2: fixes
2016-09-03 11:50:37 +02:00
Thomas Kriechbaumer
5dda9505b6
http2: improve framereader
2016-09-03 10:00:31 +02:00
Thomas Kriechbaumer
0badb3ec91
cleanup
2016-09-03 10:00:31 +02:00
Thomas Kriechbaumer
0d0c2c788d
cleanup tests
2016-09-01 10:12:13 +02:00
Thomas Kriechbaumer
e5b0dae7e9
add websockets support to mitmproxy
2016-09-01 09:57:18 +02:00
Thomas Kriechbaumer
eb83107e1c
reenable options test
2016-08-16 11:05:57 +02:00
Thomas Kriechbaumer
cd35a6ff47
add regression test for #1476
2016-08-16 11:05:57 +02:00
Thomas Kriechbaumer
bfe22e739c
Merge pull request #1481 from Kriechi/http2-simplify-zombies
...
http2: simplify zombie detection
2016-08-16 10:10:39 +02:00
Thomas Kriechbaumer
17c65e46cb
Merge pull request #1480 from mhils/reverse-proxy-auth
...
Add basic auth support for reverse proxy mode
2016-08-16 10:07:59 +02:00
Shadab Zafar
239eaf0078
Remove timezone specific value
2016-08-15 15:05:32 +05:30
Shadab Zafar
bc175b58f2
Use test times less than 2038
...
So that tests pass on 32bit systems too
2016-08-15 12:00:23 +05:30
Shadab Zafar
b9426fcec1
Add a test for base64 encoding
2016-08-15 12:00:23 +05:30
Shadab Zafar
988174246b
Add some cookie formatting related tests
2016-08-15 12:00:23 +05:30
Shadab Zafar
456f80d862
Open JSON file in text mode
2016-08-15 12:00:23 +05:30
Shadab Zafar
99b32094d8
Add simple har_dump test
2016-08-15 12:00:23 +05:30
Thomas Kriechbaumer
8f4baf42ea
http2: cleanup
2016-08-14 13:06:33 +02:00
Maximilian Hils
a9401472cd
add basic auth support for reverse proxy mode
2016-08-13 11:04:53 -07: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
dcfa7027ae
fix tests
2016-08-04 15:39:48 -07:00
Maximilian Hils
951885a5dd
simplify contentview logic
2016-08-04 15:23:44 -07:00
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
dufferzafar
1cffa5f46b
Use replace while decoding
2016-07-28 07:48:10 -07:00
Maximilian Hils
f54b302a59
fix cert verification tests, remove leftovers
2016-07-27 22:44:06 -07:00
Sachin Kelkar
17fdb841f0
verify upstream certificates by default ( #1111 )
...
squashed and merged by @mhils
2016-07-27 17:57:38 -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
fa45722ed8
Merge pull request #1402 from mhils/console-fixes
...
minor fixes
2016-07-23 12:49:57 -07:00
Maximilian Hils
61de6fa1d6
fix test_view_urlencoded
2016-07-23 11:55:27 -07:00
Thomas Kriechbaumer
514ea1b701
http2: cleanup tests
2016-07-23 11:08:32 +02:00
Shadab Zafar
08000c940c
Test marked property while serialization roundtrip
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
b5416895f5
script: convert test recorder to an addon class
2016-07-23 11:38:45 +12:00
Aldo Cortesi
9294d19f90
scripts: .start can now return an Addon instance
2016-07-23 11:29:13 +12:00
Aldo Cortesi
51a8ba57f1
script: add a namespace adaptor to match Addons
2016-07-23 11:03:50 +12:00
Maximilian Hils
65c2f30218
fix mitmproxy 0.11 dumpfile - was 0.18 before
2016-07-22 10:36:26 -07:00
Shadab Zafar
c84d0bd10b
Add a url exporter
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
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
09fbebf42a
Test suite: get_proxy_config -> get_options
2016-07-19 19:36:40 +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
26fa88a338
ProxyConfig: Refactor to move verification mode checks into configure
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
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
d2268ddb1e
ProxyConfig: --body-size-limit to Options
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
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
f9e4249499
Add a toggller helper to Options, start using it in mitmproxy console
2016-07-18 10:03:10 +12:00
Thomas Kriechbaumer
7b57c2948e
cleanup
2016-07-17 18:17:35 +02: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
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
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
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
Shadab Zafar
fea4435dac
Allow DummyFlow to match ~e, ~src and ~dst
2016-07-16 10:15:38 +05:30
Shadab Zafar
1d2ccb9170
Add DummyFlow and its Tests
2016-07-16 10:15:38 +05:30
Shadab Zafar
8c49f0e784
Add tests for TCPFlow.match
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
767457fda9
Add tests for HTTPFlow only filters
2016-07-16 10:15:38 +05:30
Shadab Zafar
317355a9af
Add test for operators (& | !)
2016-07-16 10:15:38 +05:30
Shadab Zafar
4e29993c1f
Add test for addresses (~src, ~dst)
2016-07-16 10:15:38 +05:30
Shadab Zafar
124b87b851
Add test for body (~b)
2016-07-16 10:15:38 +05:30
Shadab Zafar
88671c3aac
Add test for error (~e)
2016-07-16 10:15:38 +05:30
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
c4fb489a96
Zap unused test scripts
2016-07-15 22:37:52 +12: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
917d51bd22
Fix HAR extractor
...
Thanks to @mhils
2016-07-15 15:01:35 +12:00
Aldo Cortesi
92a5076bd0
Adjust concurrent tests for start method
2016-07-15 15:00:37 +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
Aldo Cortesi
fcc1416ffd
Fix windows parse_args test
2016-07-15 10:33:51 +12:00
Aldo Cortesi
698af945a4
Adjust for new options scheme
2016-07-14 19:58:12 +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
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
703c05066e
Fix indeterminacy in sticky cookie tests
...
How has this not bitten us before?
2016-07-14 12:59:00 +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
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
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
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
Thomas Kriechbaumer
3579c6dd43
http2: fix race-condition in tests
2016-07-12 19:55:28 +02:00
Thomas Kriechbaumer
7c09255298
http2: more coverage
2016-07-10 20:07:43 +02:00
Thomas Kriechbaumer
b611997619
http2: simplify test class
2016-07-10 18:53:00 +02:00
Shadab Zafar
7eade1ef7c
Remove redundant tests
2016-07-10 01:08:02 +05:30
Shadab Zafar
6a746deff5
Add tests for deletion of stickycookies
2016-07-09 22:20:25 +05:30
Shadab Zafar
c7cbbf5f0d
Set verbosity & flow_detail to 0
2016-07-09 12:32:41 +05:30
Shadab Zafar
147f61fa62
py3++
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
Maximilian Hils
f7639e077a
py3++
2016-07-08 15:58:12 -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
Maximilian Hils
7c67faa8da
remove script contexts
2016-07-07 23:50:55 -07:00
Maximilian Hils
c048ae1d5b
remove context from all scripts
2016-07-07 20:14:52 -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
Shadab Zafar
c870d26bc7
py3++: test_protocol_http2
2016-07-07 16:39:25 +02:00
Maximilian Hils
f259b9478f
disable harparser on py3
2016-07-07 01:21:15 -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
8287ce7e6d
fix tests
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
684b4b5130
tnetstring: keys are str on py3. migrate flow.io_compat
2016-07-06 19:55:48 -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
00a35aa895
Merge pull request #1297 from dufferzafar/py3-flow-export
...
Python 3 - test_flow_export
2016-07-05 15:17:18 -07:00
Thomas Kriechbaumer
5fecb8c843
http2: test fatal connection termination
2016-07-05 22:15:57 +02:00
Thomas Kriechbaumer
8d2042ea8a
http2: test throttling at MAX_CONCURRENT_STREAMS
2016-07-05 22:15:57 +02:00
Shadab Zafar
f623b3d99b
py3++: test_flow_export
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
Maximilian Hils
f7d4319c5a
minor fixes
2016-06-28 23:48:19 -07:00
Maximilian Hils
3b53d3e393
fix mysterious tox issue
2016-06-28 19:26:08 -07:00
Thomas Kriechbaumer
5d0de16f57
http2: improve error handling in tests
2016-06-22 22:09:57 +02:00
Shadab Zafar
c0ba47094d
py3++: mitmproxy.protocol.http1
2016-06-22 13:37:41 +05:30
Shadab Zafar
0a53550955
mitmproxy.tnetstring -> mitmproxy.contrib.tnetstring
2016-06-21 23:53:59 +05:30
Shadab Zafar
10f4a36a5a
Imported tests for tnetstring
...
Copied from
a808f6b5ba/tests/test_format.py
Then ran pep8 etc.
2016-06-21 23:47:36 +05:30
Maximilian Hils
44abb4caea
Merge pull request #1276 from dufferzafar/console-pathedit
...
mitmproxy.console tests - PathEdit
2016-06-20 20:36:31 -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
Shadab Zafar
6aeba9777a
Add dummy directory to completion
2016-06-20 01:24:27 +05:30
Shadab Zafar
ba13fda10d
Add tests for PathEdit
2016-06-20 00:50:41 +05:30
Thomas Kriechbaumer
7bde38dc4a
py3++
2016-06-19 12:00:37 +02:00
Tai Dickerson
c2d0910e59
Make har_extractor.py output HAR 1.2 spec-compliant
...
HAR files were failing to load in harviewer (http://www.softwareishard.com/har/viewer/ ) due to:
- ISO 8601 dates for startedDateTime missing timezone (http://www.softwareishard.com/blog/har-12-spec/#pages )
-- Used UTC but could add detection of default system timezone if desired
- pages object missing pageTimings (http://www.softwareishard.com/blog/har-12-spec/#pageTimings )
-- Used {} because all child fields are optional
2016-06-14 12:47:10 -04:00
Maximilian Hils
63c6660895
update examples, tests, docs
2016-06-13 18:17:09 -07: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
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
Maximilian Hils
ba466dbb35
simplify pretty_json, improve test coverage
2016-06-06 23:08:58 -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
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
12a4f9ecf9
Very basic test truss for web.app
2016-06-04 15:30:28 +12:00
Aldo Cortesi
f7f9cab5dc
Rebase on master
2016-06-04 14:37:07 +12:00
Aldo Cortesi
09da1febbd
Shift a bunch more string-related functions to strutils
2016-06-02 13:04:19 +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
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
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
bc6509ab6d
Fix test import error
2016-05-31 10:25:02 +12:00
Maximilian Hils
89f07603ca
split mitmproxy.flow into mitmproxy.flow.*
2016-05-30 01:40:09 -07:00
Thomas Kriechbaumer
be9438b01c
fix
2016-05-29 22:58:56 +02:00
Thomas Kriechbaumer
8cd0c9c330
fix windows paths
2016-05-29 22:47:51 +02:00
Thomas Kriechbaumer
fb0b591242
fix har test
2016-05-29 22:30:15 +02:00
Thomas Kriechbaumer
01fcaa64c3
fix #1162
2016-05-29 13:58:14 +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
Aldo Cortesi
f3bee6f245
Merge pull request #1172 from cortesi/solidcore
...
First steps to solidifying the core
2016-05-29 20:03:40 +12:00
Maximilian Hils
85aa5da6e3
fix tests
2016-05-28 19:31:43 -07: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
caee1adeb6
cleanup imports with flake8
2016-05-28 14:43:32 +02: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
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
Aldo Cortesi
97f3077082
Merge branch 'mhils-multidict'
2016-05-21 15:01:19 +12:00
Aldo Cortesi
123e3b130c
We don't need 3 slightly different implementations of Data
2016-05-21 11:53:14 +12:00
Maximilian Hils
a3946d2a2d
tests++
2016-05-20 13:27:26 -07:00
Maximilian Hils
f96697646c
add FlowMaster.active_flows
2016-05-19 22:09:00 -07:00
Maximilian Hils
d38989fe7e
tests: finish connections properly
2016-05-19 22:07:56 -07:00
Maximilian Hils
d3c30d9005
fix tests, don't double-add error'd flows
2016-05-19 22:07:56 -07:00
Maximilian Hils
acd51befbb
minor fixes, adjust tests
2016-05-19 22:07:56 -07:00
Maximilian Hils
6f8db2d7eb
improve MultiDict, add ImmutableMultiDict, adjust response.cookies
2016-05-18 22:50:19 -07:00
Maximilian Hils
8e39b7bf38
test flow export with duplicate query string
2016-05-18 19:28:23 -07:00
Maximilian Hils
44ac64aa72
add MultiDict
...
This commit introduces MultiDict, a multi-dictionary similar to
ODict, but with improved semantics (as in the Headers class).
MultiDict fixes a few issues that were present in the Request/Response
API. In particular, `request.cookies["foo"] = "bar"` has previously been a
no-op, as the cookies property returned a mutable _copy_ of the cookies.
2016-05-18 18:46:42 -07:00
Thomas Kriechbaumer
09b90fce9e
remove debug print
2016-05-17 22:45:09 -07:00
Thomas Kriechbaumer
e61014d203
http2: add connection-lost test
2016-05-17 21:25:10 -07:00
Aldo Cortesi
d27fd55657
Fix broken test_flow_export tests
...
- Make the tests safe for concurrency
- Fix a test that only passed due to prior modification of global state
This also fixes the project generally for parallel test execution.
2016-05-18 12:34:45 +12:00
Aldo Cortesi
00cc836470
Clean up flow export tests
...
- Externalise test data
- Define a less finicky comparator for Python code
2016-05-18 12:16:50 +12:00
Thomas Kriechbaumer
f4a13d6f9f
http2: improve header tests ( #1143 ) ( #1144 )
2016-05-14 10:14:42 -07:00
Thomas Kriechbaumer
7a813936c6
disable http2 header encoding, use bytes everywhere
2016-05-11 16:47:58 -05:00
Thomas Kriechbaumer
bef72c1b02
Merge pull request #1121 from Kriechi/fix-cookies
...
improve cookie parsing
2016-05-11 12:30:44 -05:00
Thomas Kriechbaumer
e2ee48a0ee
replace SimpleCookie with our own parser lib
2016-05-11 12:20:21 -05:00
Maximilian Hils
67a37e6d1f
improve script loading
2016-05-11 11:15:36 -06:00
Maximilian Hils
74cfd7a4e2
stateobject: support lists
2016-04-29 20:59:26 -07:00
Maximilian Hils
317b4becca
mitmdump: don't fail for other flowtypes
2016-04-29 20:18:32 -07:00
Maximilian Hils
909d5ec87e
FlowReadError -> FlowReadException
2016-04-29 11:17:49 -07:00
Steven Van Acker
66267ad276
support for setting/sending multiple cookies ( #1091 )
...
* support for setting/sending multiple cookies
* py.test for multiple cookie support
2016-04-22 11:16:05 -07:00
Maximilian Hils
028f5c4929
downgrade pyparsing to fix #1087 and #1090
2016-04-21 17:11:28 -07:00
Maximilian Hils
423c076c61
cleanup mitmproxy.controller, raise Kill in Channel ( #1085 )
2016-04-14 12:03:29 -07:00
Maximilian Hils
bc60c26c7b
py3++
2016-04-13 22:34:28 -07:00
Maximilian Hils
70e35b7017
peer_address -> ip_address
2016-04-11 14:14:18 -07:00
Maximilian Hils
dcdee7dc46
server replay: keep --kill active
2016-04-09 16:47:05 -07:00
Maximilian Hils
0259f47997
Merge branch 'better-replace'
2016-04-03 08:17:30 -07:00
Thomas Kriechbaumer
f5fe93bf13
Merge pull request #1074 from mitmproxy/move-response-refresh
...
move HTTPResponse.refresh into netlib
2016-04-03 10:16:39 +02:00
Maximilian Hils
4e2acc4d9d
move HTTPResponse.refresh into netlib
2016-04-02 22:49:05 +02:00
Maximilian Hils
e6fa2688c9
form_(in|out) -> first_line_format
2016-04-02 21:57:35 +02:00
Maximilian Hils
610842cda5
fix FlowMaster.create_request, add test
2016-04-02 21:15:55 +02:00
Maximilian Hils
806aa0f41c
improve .replace() and move it into netlib
2016-04-02 14:38:33 +02:00
Zohar Lorberbaum
cd2ef2fe13
merge
2016-03-28 10:17:58 -07:00
Zohar Lorberbaum
37483e228f
Merge remote-tracking branch 'mitmproxy/master'
...
Merge with master
2016-03-28 10:06:02 -07:00