Commit Graph

285 Commits

Author SHA1 Message Date
Thomas Kriechbaumer d6a68e1394 remove outdated workarounds 2015-05-27 10:23:43 +02:00
Aldo Cortesi 3f25df0b12 Merge pull request #56 from Kriechi/http2-frames
implement basic HTTP/2 frame classes
2015-05-27 09:30:52 +12:00
Thomas Kriechbaumer 4ce6f43616 implement basic HTTP/2 frame classes 2015-05-26 17:59:29 +02:00
Aldo Cortesi ae749975e5 Post release version bump. 2015-05-26 10:43:28 +12:00
Maximilian Hils 46fadfc823 improve displaying tcp addresses 2015-05-18 17:16:42 +02:00
Aldo Cortesi f40bf865b1 release prep: bump version 2015-05-18 10:46:00 +12:00
Aldo Cortesi ace4454523 Zap outdated comment 2015-05-16 11:32:18 +12:00
Aldo Cortesi f2bc58cdd2 Add tcp.Reader.safe_read, use it in socks and websockets
safe_read is guaranteed to raise or return a byte string of the
requested length. It's particularly useful for implementing binary
protocols.
2015-05-05 10:47:02 +12:00
Aldo Cortesi 08b2e2a6a9 websockets: more flexible masking interface. 2015-05-01 10:31:20 +12:00
Aldo Cortesi 7d9e38ffb1 websockets: A progressive masker. 2015-05-01 10:09:35 +12:00
Aldo Cortesi 4dce7ee074 websockets: more compact and legible human_readable 2015-04-30 12:10:08 +12:00
Aldo Cortesi 8086022920 Add a tiny utility class for keeping bi-directional mappings.
Use it in websocket and socks.
2015-04-30 09:04:22 +12:00
Aldo Cortesi 18df329930 websockets: nicer frame construction
- Resolve unspecified values on instantiation
- Add a check for masking key length
- Smarter resolution for masking_key and mask values. Do the right thing unless told not to.
2015-04-24 15:42:31 +12:00
Aldo Cortesi 192fd1db7f websockets: include all header values in frame roundtrip 2015-04-24 15:31:14 +12:00
Aldo Cortesi def93ea8ca websockets: remove validation
We don't really need this any more. The interface is much less error prone
because bit flags are no longer integers, we have a range check on opcode on
header instantiation, and we've deferred length code calculation and so forth
into the byte render methods.
2015-04-24 15:23:00 +12:00
Aldo Cortesi f22bc0b4c7 websocket: interface refactoring
- Separate out FrameHeader. We need to deal with this separately in many circumstances.
- Simpler equality scheme.
- Bits are now specified by truthiness - we don't care about the integer value.
This means lots of validation is not needed any more.
2015-04-24 15:09:21 +12:00
Aldo Cortesi 3519871f34 websockets: refactor to avoid rundantly specifying payloads and payload lengths 2015-04-24 09:21:04 +12:00
Aldo Cortesi bdd52fead3 websockets: extract frame header creation into a function 2015-04-24 08:47:09 +12:00
Aldo Cortesi 42a87a1d8b websockets: handshake checks only take headers 2015-04-23 08:23:51 +12:00
Aldo Cortesi 4fb49c8e55 websockets: (very) slightly nicer is_valid constraints 2015-04-21 23:49:27 +12:00
Aldo Cortesi 176e29fc09 websockets: constants, variable names, refactoring 2015-04-21 23:13:42 +12:00
Aldo Cortesi 1b509d5aea Whitespace, interface simplification
- safe_tobytes doesn't buy us much
- move masking key generation inline
2015-04-21 22:51:01 +12:00
Aldo Cortesi 3e0a71ea34 websockets: refactor to use http and header functions in http.py 2015-04-21 22:39:45 +12:00
Aldo Cortesi e5f1264838 Whitespace, indentation, nounce -> nonce 2015-04-21 13:39:00 +12:00
Aldo Cortesi 7d83e388aa Whitespace, pep8, mixed indentation 2015-04-21 11:19:00 +12:00
Aldo Cortesi dd7ea896f2 Return a named tuple from read_response 2015-04-21 11:11:16 +12:00
Aldo Cortesi 2c660d7633 Migrate requeset reading from mitmproxy to netlib 2015-04-21 11:05:12 +12:00
Chandler Abraham 4ea1ccb638 fixing test coverage, adding to_file/from_file reader writes to match socks.py 2015-04-19 22:18:30 -07:00
Aldo Cortesi 74389ef04a Websockets: reorganise
- websockets.py to top-level
- implementations into test suite
2015-04-20 09:38:09 +12:00
Maximilian Hils 08ba987a84 Merge branch 'master' of github.com:mitmproxy/netlib 2015-04-17 16:29:25 +02:00
Maximilian Hils 0c2ad1edb1 fix socket_close on Windows, refs mitmproxy/mitmproxy#527 2015-04-17 16:29:09 +02:00
Aldo Cortesi 7defb5be86 websockets: more whitespace, WebSocketFrame -> Frame 2015-04-17 14:29:20 +12:00
Aldo Cortesi 488c25d812 websockets: whitespace, PEP8 2015-04-17 13:57:39 +12:00
Aldo Cortesi 3bbafa24bd Merge pull request #54 from Chandler/websockets
Netlib WebSockets take 1
2015-04-17 13:46:51 +12:00
Aldo Cortesi c53d89fd7f Improve flexibility of http_cookies._format_pairs 2015-04-16 08:30:54 +12:00
Aldo Cortesi 0c85c72dc4 ODict improvements
- Setting values now tries to preserve the existing order, rather than
just appending to the end.
- __repr__ now returns  a repr of the tuple list. The old repr becomes a
.format() method. This is clearer, makes troubleshooting easier, and
doesn't assume all data in ODicts are header-like
2015-04-15 10:28:17 +12:00
Aldo Cortesi aeebf31927 odict: don't convert values to strings when added 2015-04-14 16:20:02 +12:00
Aldo Cortesi d739882bf2 Add an .extend method for ODicts 2015-04-14 13:50:57 +12:00
Aldo Cortesi 6db5e0a4a1 Remove old-style set-cookie cruft, unit tests to 100% 2015-04-14 10:13:03 +12:00
Aldo Cortesi de9e741125 Firm up cookie parsing and formatting API
Make a tough call: we won't support old-style comma-separated set-cookie
headers. Real world testing has shown that the latest rfc (6265) is
often violated in ways that make the parsing problem indeterminate.
Since this is much more common than the old style deprecated set-cookie
variant, we focus on the most useful case.
2015-04-14 10:02:10 +12:00
Chandler Abraham 2d72a1b6b5 100% test coverage, though still need plenty more 2015-04-13 13:36:09 -07:00
Chandler Abraham f131f9b855 handshake tests, serialization test 2015-04-11 17:26:59 -07:00
Aldo Cortesi 1a79ef8b6c Merge branch 'master' of https://github.com/mitmproxy/netlib 2015-04-12 11:32:27 +12:00
Aldo Cortesi 2630da7263 cookies: Cater for special values, fix some bugs found in real-world testing 2015-04-12 11:30:35 +12:00
Aldo Cortesi 73ce169e3d Initial outline of a cookie parsing and serialization module. 2015-04-12 10:26:09 +12:00
Chandler Abraham 0edc04814e small cleanups, working on tests 2015-04-11 11:35:15 -07:00
Chandler Abraham e41e5cbfdd netlib websockets 2015-04-10 18:37:41 -07:00
Maximilian Hils e58f76aec1 fix code smell 2015-04-09 02:09:33 +02:00
Maximilian Hils 7f7ccd3a18 100% test coverage 2015-04-09 00:57:37 +02:00
Maximilian Hils 6fbe3006af fail gracefully if we cannot start a new thread 2015-04-09 00:13:01 +02:00