Commit Graph

429 Commits

Author SHA1 Message Date
Thomas Kriechbaumer
722b3ae9cd http2: setup ALPN 2015-06-08 10:29:50 +02:00
Thomas Kriechbaumer
16361439c4 http2: add command line arguments 2015-06-08 10:10:32 +02:00
Aldo Cortesi
332832278f 100% test coverage 2015-06-08 16:25:33 +12:00
Aldo Cortesi
97fdb9ef0c More timeout improvements 2015-06-08 15:57:29 +12:00
Aldo Cortesi
317db54666 Revamp timeout handling and test logging 2015-06-08 15:23:56 +12:00
Aldo Cortesi
af22814bc3 Revamp error logging somewhat 2015-06-08 14:01:04 +12:00
Aldo Cortesi
7dff8f0dca Convert parse_websocket_frame to a generator 2015-06-08 10:58:12 +12:00
Aldo Cortesi
df962f8e7b Convert parse_pathod to generator 2015-06-07 16:11:32 +12:00
Aldo Cortesi
0da3e51e1c Make parse_pathoc a generator
This lets us do things like this:

get:/:ir,@1:x1000000000

It will also let us expand the language to include a "repeat forever" concept.
2015-06-07 13:18:33 +12:00
Aldo Cortesi
7412ec83f5 Refactor pathoc message receive to use queues and generators
This gives us a nicer, thread-safe interface.
2015-06-05 16:03:17 +12:00
Aldo Cortesi
d23691f98c Improve websocket logging 2015-06-05 12:04:40 +12:00
Aldo Cortesi
0a7da6a9b1 Rudimentary support for reflected websocket frames. 2015-06-04 23:57:23 +12:00
Aldo Cortesi
07d5b90ebf Shore up test suite. 2015-06-04 20:36:50 +12:00
Aldo Cortesi
182b79ab9e Refactor to allow dropping to websockets on any anchor point 2015-06-04 20:23:05 +12:00
Aldo Cortesi
ae9f470d2b Craft anchor is now specified as a regex
Unifies this with anchor points.
2015-06-04 19:09:38 +12:00
Aldo Cortesi
c5992b8d23 Refactor Pathod HTTP handlers for clarity 2015-06-04 18:37:13 +12:00
Aldo Cortesi
5a33f31041 Clarify nomenclature, complete nested frame language spec. 2015-06-04 18:14:25 +12:00
Aldo Cortesi
9fda74c65a Clarify language API, stub out nested websocket frames 2015-06-04 17:18:06 +12:00
Aldo Cortesi
5bee061849 Bump version 2015-06-04 11:15:07 +12:00
Aldo Cortesi
6122f2da44 Change test API to allow multiple pathoc requests
Add simple unit test for websocket server
2015-05-31 18:38:11 +12:00
Aldo Cortesi
2ebe994375 logging: Re-raise exception after output 2015-05-31 18:12:39 +12:00
Aldo Cortesi
effd29b51a Refactor logging, fix conversion to websocket handler 2015-05-31 18:03:41 +12:00
Aldo Cortesi
af66661212 Add timestamps to logs by everywhere 2015-05-31 17:25:36 +12:00
Aldo Cortesi
e7c255a3bb Refactor, fix a crashing bug by changing the way we specify SANs to pathod 2015-05-31 16:54:52 +12:00
Aldo Cortesi
88ab54fab0 Refactor pathod to allow switching protocol handlers 2015-05-31 14:12:51 +12:00
Aldo Cortesi
2a1a0e1ab2 Prevent autoflake from changing our API 2015-05-30 17:51:48 +12:00
Aldo Cortesi
a09f3e06c3 Factor logger out of pathoc, use it in pathod as well. 2015-05-30 17:43:01 +12:00
Aldo Cortesi
4ed5043c67 Add coding style check, reformat. 2015-05-30 12:03:13 +12:00
Thomas Kriechbaumer
17db4486a8 fix typo 2015-05-29 20:15:37 +02:00
Thomas Kriechbaumer
64d6a11ce5 fix github links 2015-05-29 19:57:06 +02:00
Maximilian Hils
e8ee6d20fe fix typo 2015-05-26 19:08:55 +02:00
Aldo Cortesi
baf0bac39a Post-release version bump. 2015-05-26 10:43:42 +12:00
Aldo Cortesi
a43e3e29cf Remove server example for now. 2015-05-26 09:50:51 +12:00
Aldo Cortesi
dccd57f53b release prep: bump version, fix doc layout a bit 2015-05-18 10:46:19 +12:00
Aldo Cortesi
bcba55cc26 Strike times token on copy 2015-05-17 16:42:59 +12:00
Aldo Cortesi
abe1f09f2c HTTP and websocket requests now have an xN clause to repeat 2015-05-17 15:52:56 +12:00
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
1dc2fa0424 pathoc: cope with errors during websocket frame read. 2015-05-05 10:59:37 +12:00
Aldo Cortesi
589deb9fe1 websockets: specification of fin, mask, rsv1-3 bits. 2015-05-04 10:48:35 +12:00
Aldo Cortesi
179cc8dc1f Split up language docs, document websocket code specification. 2015-05-04 09:54:59 +12:00
Aldo Cortesi
4b2e00acb3 Docs 2015-05-04 08:34:53 +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
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
601cdf70c7 websockets: progressive masking. 2015-05-01 10:31:45 +12:00
Aldo Cortesi
3a3ea9d927 pathoc: cope better with disconnect conditions 2015-05-01 09:41:07 +12:00
Aldo Cortesi
b8f40860f5 pathoc: Integrate bytes read/written log into Log handler 2015-04-30 14:42:54 +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
2306a7ab6d Refactor logging, add some defaults to pathod argument help. 2015-04-23 08:43:57 +12:00
Aldo Cortesi
ce6147ec35 Use get_request_line from netlib.http 2015-04-23 08:24:26 +12:00
Aldo Cortesi
45d1e5cd0e Example websocket key for mock renders 2015-04-23 07:29:55 +12:00
Aldo Cortesi
61dc01af11 Resolve messages as part of policy check 2015-04-22 16:38:54 +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
b66be24149 Fix call signature in pathoc. 2015-04-20 18:14:47 +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
43dadbc2fe Add SANs specification arguments to pathod 2015-04-19 10:51:03 +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
a5567094ac Document embedded response specification. 2015-04-18 17:04:24 +12:00
Aldo Cortesi
baf961cde0 Unit test++ for PathodSpec 2015-04-18 16:36:45 +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
09e995ab5c Improvements to pathoc repeat requests
- Pathoc will now keep trying if connections failed
- Add a -w option to specify a wait time between requests
2015-03-14 11:54:47 +11:00
Aldo Cortesi
295c8340a3 Bump to 0.11.1 2014-11-15 12:44:26 +13:00
Aldo Cortesi
63d2403558 Merge branch 'master' of ssh.github.com:mitmproxy/pathod 2014-11-15 12:42:38 +13:00
Aldo Cortesi
1b41b9bb9b Use current version for download links
Fixes #19
2014-11-15 12:41:44 +13:00
Maximilian Hils
8635e00175 Merge remote-tracking branch 'origin/master'
Conflicts:
	setup.py
2014-11-11 12:29:34 +01:00
Maximilian Hils
b917b61e6a be more explicit about requirements 2014-11-11 12:28:08 +01:00
Aldo Cortesi
956149c126 --memo-limit - limit failed attempts to find new generated requests to N 2014-10-26 18:16:47 +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
c00ae41486 Add a memoize argument to prevent playing the same pattern twice
Also remove addition of Date header, which makes this non-deterministic
2014-10-25 19:50:48 +13:00
Aldo Cortesi
fc4f9a1c7a pathoc -n 0 repeats forever 2014-10-25 17:58:59 +13:00