Aldo Cortesi
d80fbc2410
websockets: raw body specification
2015-05-17 15:38:13 +12:00
Aldo Cortesi
bddf81edfc
websockets: lINTEGER to specify payload length
2015-05-17 11:31:02 +12:00
Aldo Cortesi
cd2fb13b3e
websockets: replace the "raw" with a simpler mechanism
...
You can now say "knone" to specifiy that no key should be generated
under any circumstances.
2015-05-17 11:04:53 +12:00
Aldo Cortesi
e4feba5433
Introduce and enfoce uniqueness constraints for language components
2015-05-17 10:43:30 +12:00
Aldo Cortesi
2ee60783b6
websockets: client and server flavors, key and mask specification
2015-05-16 11:31:53 +12:00
Aldo Cortesi
d66dedc6e7
websockets: mask specification
...
- Add a FixedLengthValue
- Use it to implement a 4-byte mask specifier
- Adjust docs
2015-05-16 09:42:47 +12:00
Aldo Cortesi
2beae27541
websockets: fix actions on frames
2015-05-05 11:16:29 +12:00
Aldo Cortesi
589deb9fe1
websockets: specification of fin, mask, rsv1-3 bits.
2015-05-04 10:48:35 +12:00
Aldo Cortesi
5b6d3a80bb
websockets: code specification
2015-05-03 13:54:52 +12:00
Aldo Cortesi
67d2993339
Lower-case rather than upper-case to canonicalize names
...
Marginally less finicky
2015-05-03 12:59:21 +12:00
Aldo Cortesi
3f5ec4b737
PreValue -> Value
2015-05-03 12:54:25 +12:00
Aldo Cortesi
cc434ded89
Clarify token/component split through naming
...
Tokens are now Tok*
2015-05-03 12:53:28 +12:00
Aldo Cortesi
e35e6d90b9
Remove bundled pyparsing, install as external package
...
Adapt ValueLiteral parsing to suit
2015-05-03 10:11:51 +12:00
Aldo Cortesi
bf71a9a2a0
base.PathodSpec -> http.PathodResponse
2015-05-03 08:56:19 +12:00
Aldo Cortesi
a46e17459d
Language: minor refactoring and whitespace
2015-05-03 08:51:57 +12:00
Aldo Cortesi
5d5f2bdd1f
Split out language messages and actions
2015-05-03 08:02:13 +12:00
Aldo Cortesi
24437ba180
Revamp header components in language
2015-05-02 22:32:57 +12:00
Aldo Cortesi
fffee660e5
language: create and use Integer and PreValue generics
2015-05-02 21:42:09 +12:00
Aldo Cortesi
0ffd14372a
Refactor language to move specific tokens into protocol module
...
This patch makes progress on language/http.py
2015-05-02 21:27:11 +12:00
Aldo Cortesi
2091d16387
test coverage: generators and websockets to 100%
2015-05-02 17:19:48 +12:00
Aldo Cortesi
a6dbb82936
tests: extract language.writer and language.websocket
2015-05-02 17:10:25 +12:00
Aldo Cortesi
88eabfd8ef
language: extract http tests
2015-05-02 17:05:34 +12:00
Aldo Cortesi
5b48c69a6a
Split language test suite: generators
...
Also remove some unused code
2015-05-02 16:53:48 +12:00
Aldo Cortesi
9109b3cc8c
Massive refactoring to split up language implementation.
2015-05-02 16:17:00 +12:00
Aldo Cortesi
fea3d8e421
Revamp pathoc log output with a context handler
...
This does two things - it gives us a central place to put log utilities,
and it lets us group together related log lines.
2015-04-30 13:59:10 +12:00
Aldo Cortesi
f927701e74
Websocket frame read limit.
2015-04-30 08:03:26 +12:00
Aldo Cortesi
7e69fab331
Stub out websocket read loop and Frame language construct
2015-04-29 10:02:16 +12:00
Aldo Cortesi
5405a4d458
Pull HTTP functionality out of language._Message in prep for frames
2015-04-24 07:35:17 +12:00
Aldo Cortesi
b0ab5297d1
Change the semantics of the craft anchor point specification
...
The anchor point is now defined as /p (rather than /p/), with the specification
for a request just to /p or /p/ being empty.
2015-04-23 17:35:22 +12:00
Aldo Cortesi
dacb350040
pathod: register websocket key from client handshake
2015-04-23 17:11:20 +12:00
Aldo Cortesi
5dee4210eb
pathod: flag to set debugging for web interface dev
2015-04-22 15:58:25 +12:00
Aldo Cortesi
99cb0808ab
websockets: server handshake scheme
...
Also refactor settings and resolution interfaces
2015-04-22 15:49:17 +12:00
Aldo Cortesi
65f04bf4d1
First-pass websocket client handshake
2015-04-22 09:31:22 +12:00
Aldo Cortesi
33820d9aee
Whitespace, interface refcactoring, sketch websockets language
2015-04-20 15:42:33 +12:00
Aldo Cortesi
be450cf9db
Whitespace, small fixes.
2015-04-20 08:56:47 +12:00
Aldo Cortesi
3891fe5638
Refactor pathoc
...
We're getting ready for websockets. All the output specifiers are now on the
Pathoc object itself - we can't assume that all input and output happens in
response to a method call any more. This has the upside that we can unify the
request/print_request methods.
2015-04-19 18:04:27 +12:00
Aldo Cortesi
f8469a283b
pathoc: Print SSL info only once per connection
2015-04-19 15:55:22 +12:00
Aldo Cortesi
f332674ce1
100% unit tests
...
- Add SANs to pathod SSLConfig
- Fix tricky SSL establishment error test. Lets see if it's platform portable.
2015-04-19 10:43:16 +12:00
Aldo Cortesi
d8b79e9982
Scripts to reproducibly generate the test certificate
2015-04-19 10:12:15 +12:00
Aldo Cortesi
baf961cde0
Unit test++ for PathodSpec
2015-04-18 16:36:45 +12:00
Aldo Cortesi
ef8e02edc3
Fix test that fails on Travis with a bodge
...
Circumvents a platform difference causing a test failure.
2015-04-17 18:02:03 +12:00
Aldo Cortesi
3061bdd0c2
Unit tests: cmdline.pathod
2015-04-17 18:00:46 +12:00
Aldo Cortesi
f8e95db6b0
housekeeping: ++tests, coverage annotations
2015-04-17 17:45:50 +12:00
Aldo Cortesi
fe8e27f27b
Housekeeping: .env and fix unit tests
2015-04-17 15:27:50 +12:00
Aldo Cortesi
27c7e9e934
Fix unit tests
2014-11-11 13:34:02 +13:00
Aldo Cortesi
bd1f7ebb5c
Improve netability of grammars
2014-10-26 16:27:25 +13:00
Aldo Cortesi
974bd9d0f9
Resolve a quoting ambiguity in nested response specs
2014-10-26 12:56:28 +13:00
Aldo Cortesi
fc1fc80469
Allow nesting of pathod response specs in pathoc specs
...
This opens the door to really neat, repeatable, client-side driven
fuzzing, especially of proxies.
2014-10-26 10:50:32 +13:00
Aldo Cortesi
fc4f9a1c7a
pathoc -n 0 repeats forever
2014-10-25 17:58:59 +13:00
Aldo Cortesi
609d6eab30
Make grammar less ambiguous for multi-pattern files
2014-10-25 17:27:08 +13:00
Aldo Cortesi
6d8431ab3e
Allow specification of multiple patterns from file and on command line
2014-10-25 16:20:23 +13:00
Aldo Cortesi
d4e6c25d45
Update pyparsing
2014-10-25 15:37:57 +13:00
Aldo Cortesi
00d0ee5ad5
Parse patterns eagerly on instantiation
2014-10-25 15:30:54 +13:00
Aldo Cortesi
d6ee532711
Whitespace and formatting
2014-10-25 14:24:05 +13:00
Aldo Cortesi
5aadf92767
Nicer way to specify patterns read for file - just use a path
2014-10-25 08:18:39 +13:00
Aldo Cortesi
cd481fdd14
Refactor and whitespace
2014-10-24 17:12:54 +13:00
Aldo Cortesi
962a414327
Fix tests, re-add scripts
2014-10-24 14:01:34 +13:00
Maximilian Hils
0426eccfd8
fix tests
2014-09-28 03:55:16 +02:00
Aldo Cortesi
14d7beee13
Merge pull request #16 from mitmproxy/dist
...
improve distribution
2014-09-08 20:40:36 +12:00
Aldo Cortesi
c198406b12
Silence insecure requets warnings in our test package
2014-09-07 11:38:44 +12:00
Maximilian Hils
8d647739c3
Merge branch 'master' into dist
...
Conflicts:
requirements.txt
setup.py
2014-08-31 01:31:14 +02:00
Maximilian Hils
e9a838ae53
fix tests to be compatible with the latest requests version
2014-08-31 01:28:51 +02:00
Maximilian Hils
e75f3746bb
try harder to fix travis
2014-08-30 18:07:13 +02:00
Aldo Cortesi
ca97aed4b8
Adjust timeout test to make race condition much less likely.
2014-03-10 17:19:46 +13:00
Aldo Cortesi
e54bf1a804
Adjust for upstream cert store changes, improve cert handling significantly
2014-03-05 15:03:31 +13:00
Aldo Cortesi
944f213ebc
Add connection cipher info to pathod server log
2014-03-02 22:10:49 +13:00
Aldo Cortesi
53334e437c
pathoc -S dumps information on the remote SSL certificate chain
2014-03-02 19:04:56 +13:00
Aldo Cortesi
0177eb899a
Support cert/key combo files in args. Improve argument names in SSLOptions
2014-03-02 15:56:36 +13:00
Aldo Cortesi
234d326080
Implement custom certs.
2014-03-02 15:13:56 +13:00
Aldo Cortesi
091e539a02
Big improvements to SSL handling
...
- pathod now dynamically generates SSL certs, using the ~/.mitmproxy
cacert
- pathoc returns data on SSL peer certificates
- Pathod certificate CN can be specified on command line
- Support SSLv23
2014-03-02 13:45:35 +13:00
Maximilian Hils
b994fb5a27
adjust to signature changes in netlib.tcp
2014-01-28 19:28:20 +01:00
Maximilian Hils
ea894282f3
move test requirements out of main requirements.txt
2014-01-28 03:21:59 +01:00
Aldo Cortesi
a9f8dcf755
Merge pull request #11 from mitmproxy/refactor_read_http_body
...
always return Content-Length: 0 if r is not set
2014-01-04 14:48:12 -08:00
Maximilian Hils
e0d376381e
fix windows compatibility
2013-12-16 04:47:29 +01:00
Maximilian Hils
7049becdfe
always return Content-Length: 0 if r is not set
2013-12-15 06:42:58 +01:00
Maximilian Hils
0382b809ea
always read files in binary mode
2013-06-16 00:30:13 +02:00
Aldo Cortesi
5eeb52183a
Adapt for new request_client_cert option in netlib.
2013-05-13 09:03:48 +12:00
Aldo Cortesi
0504bcfd96
Changelog, minor cleanups.
2013-04-30 09:32:11 +12:00
Aldo Cortesi
110a8bb594
Print pathod craft explanations to stdout.
2013-03-03 16:33:50 +13:00
Aldo Cortesi
155710f991
Improve robustness of proxy CONNECT, test coverage to 100%.
2013-03-02 16:57:00 +13:00
Aldo Cortesi
9167b9b8b6
Make pathoc request return more human-friendly.
2013-02-27 09:07:16 +13:00
Aldo Cortesi
69339836c2
Adapt to netlib API changes.
2013-02-24 15:36:35 +13:00
Aldo Cortesi
9c9e15341f
Make last_log return None if nothing is logged.
2013-02-23 21:46:01 +13:00
Aldo Cortesi
9bd269c26a
Add support for client certificates
...
- pathod request logs now include a clientcert member with details on the
client cert, or None if there wasn't one.
- pathoc has a -C option to specify a client certificate
2013-01-20 22:37:43 +13:00
Aldo Cortesi
ed7ef84557
Implement and unit test not-after-connect option.
2013-01-05 20:36:06 +13:00
Aldo Cortesi
5493925ea0
CONNECT through proxy mode for pathoc
...
Also, use this to unit test the pathod CONNECT implementation.
2013-01-05 20:29:46 +13:00
Aldo Cortesi
c744ef2dcb
Proxy mode: drop to SSL if we see an HTTP CONNECT request
2013-01-05 17:15:42 +13:00
Aldo Cortesi
3886ccae93
Provisional proxy mode support for pathod.
2013-01-05 15:25:09 +13:00
Aldo Cortesi
d7f641c6ee
Shift SSL parameters into Pathoc class
2013-01-04 10:37:26 +13:00
Aldo Cortesi
781592d6c0
Fix timeout test.
2012-11-18 09:34:15 +13:00
Aldo Cortesi
e40482576c
Add disconnect specifiers to test suite.
...
Fixes hangs seen in test suite with recent versions of requetss.
2012-11-18 09:04:49 +13:00
Aldo Cortesi
af698b2fda
:u belongs on Request not Response
2012-11-16 14:41:02 +13:00
Aldo Cortesi
ef9cbe3b25
Add u User-agent shortcut.
...
Usage:
200:ua - Shortcut "a" for Android.
200:u"foo" - Or a value literal
Shortcuts can be listed using the --show-uas argument to pathoc.
2012-11-16 13:46:42 +13:00
Aldo Cortesi
3f50930dc0
Use .freeze to implement the -e explain flags for pathod and pathoc.
...
This now prints (in pathoc) or logs (in pathod) a frozen specification that
includes an expanded record of all generated values and locations.
2012-10-31 11:34:58 +13:00
Aldo Cortesi
8c6cc8140c
Fix generated values in request path specification.
2012-10-31 09:48:55 +13:00
Aldo Cortesi
0c9cfb3f38
Add a .freeze() method to all components.
...
This expands and freezes all randomly generated values. The message returned
can be queried for a precise spec to reproduce the message.
2012-10-31 09:32:21 +13:00
Aldo Cortesi
f8df0a1e75
Add a .values method to messages, simplify a lot of stuff as a consequence.
2012-10-30 16:08:36 +13:00
Aldo Cortesi
a09584b9e6
Make Message classes more self-contained.
2012-10-30 15:22:53 +13:00
Aldo Cortesi
b2deb470de
Extract .serve() method from message classes.
2012-10-30 14:46:18 +13:00
Aldo Cortesi
677f0e0580
Change preview_safe to return a safe copy of the current message.
2012-10-30 13:36:32 +13:00