Commit Graph

545 Commits

Author SHA1 Message Date
Maximilian Hils
693cdfc6d7 python3++ 2015-09-20 19:40:09 +02:00
Maximilian Hils
3f1ca556d1 python3++ 2015-09-20 18:12:55 +02:00
Maximilian Hils
91cdd78201 improve http error messages 2015-09-19 11:59:40 +02:00
Maximilian Hils
551d9f11e5 experimental: don't interfere with headers 2015-09-18 18:05:50 +02:00
Maximilian Hils
d1904c2f52 python3++ 2015-09-18 15:38:31 +02:00
Maximilian Hils
7b6b157547 properly handle SNI IPs
fixes mitmproxy/mitmproxy#772
We must use the ipaddress package here, because that's what cryptography
uses. If we opt for something else, we have nasty namespace conflicts.
2015-09-18 15:35:02 +02:00
Maximilian Hils
266b80238d fix tests 2015-09-17 17:29:55 +02:00
Maximilian Hils
d798ed955d python3++ 2015-09-17 16:31:50 +02:00
Maximilian Hils
8d71059d77 clean up http message models 2015-09-17 15:16:12 +02:00
Maximilian Hils
a07e43df8b http1: add assemble_body function 2015-09-17 02:39:42 +02:00
Maximilian Hils
dad9f06cb9 organize exceptions, improve content-length handling 2015-09-17 02:14:14 +02:00
Maximilian Hils
265f31e878 adjust http1-related code 2015-09-16 18:43:24 +02:00
Maximilian Hils
a077d8877d finish netlib.http.http1 refactor 2015-09-16 00:04:23 +02:00
Maximilian Hils
11e7f476bd wip 2015-09-15 19:12:15 +02:00
Maximilian Hils
997fcde8ce make clean_bin unicode-aware 2015-09-12 17:03:09 +02:00
Maximilian Hils
a38142d595 don't yield empty chunks 2015-09-11 01:17:39 +02:00
Maximilian Hils
92c763f469 fix mitmproxy/mitmproxy#759 2015-09-10 12:32:38 +02:00
Maximilian Hils
a5f7752cf1 add ssl_read_select 2015-09-10 11:30:41 +02:00
Maximilian Hils
32b3c32138 add tcp.Address.__hash__ 2015-09-08 21:31:27 +02:00
Maximilian Hils
fc86bbd03e let Headers inherit from object
fixes mitmproxy/mitmproxy#753
2015-09-08 15:16:25 +02:00
Maximilian Hils
50bf92ccce Merge branch 'master' of https://github.com/mitmproxy/netlib 2015-09-05 18:16:41 +02:00
Maximilian Hils
66ee1f465f headers: adjust everything 2015-09-05 18:15:47 +02:00
Maximilian Hils
3718e59308 finalize Headers, add tests 2015-09-05 15:27:48 +02:00
Maximilian Hils
5f97701958 add new headers class 2015-09-05 13:26:36 +02:00
Thomas Kriechbaumer
3ebe5a5147 http2: do net let Settings frames escape 2015-09-03 21:24:07 +02:00
Thomas Kriechbaumer
53abf5f4d7 http2: handle Ping in protocol 2015-09-03 21:24:07 +02:00
Maximilian Hils
2d0d240abc Merge branch 'master' of https://github.com/mitmproxy/netlib 2015-08-29 20:56:19 +02:00
Maximilian Hils
4a8fd79e33 don't yield prefix and suffix 2015-08-29 20:54:54 +02:00
Maximilian Hils
1265945f55 move sslversion mapping to netlib 2015-08-29 12:30:35 +02:00
Maximilian Hils
982d8000c4 wip 2015-08-28 17:35:48 +02:00
Thomas Kriechbaumer
3e3b59aa71 http2: fix priority stream dependency check 2015-08-26 20:58:00 +02:00
Maximilian Hils
de0ced73f8 fix error messages 2015-08-25 18:33:55 +02:00
Maximilian Hils
21858995ae request -> request_method 2015-08-24 18:16:34 +02:00
Maximilian Hils
622665952c minor stylistic fixes 2015-08-24 16:52:32 +02:00
Thomas Kriechbaumer
cd9701050f read_response depends on request for stream_id 2015-08-21 10:04:57 +02:00
Thomas Kriechbaumer
53f2582313 http2: fix unhandled settings frame 2015-08-20 20:36:51 +02:00
Thomas Kriechbaumer
16f697f68a http2: disable features we do not support yet 2015-08-20 10:27:06 +02:00
Thomas Kriechbaumer
94b7beae2a http2: implement basic flow control updates 2015-08-20 10:27:06 +02:00
Thomas Kriechbaumer
eb34305518 http2: fix frame length field 2015-08-20 10:27:06 +02:00
Thomas Kriechbaumer
e20d4e5c02 http2: add callback to handle unexpected frames 2015-08-20 10:27:06 +02:00
Thomas Kriechbaumer
1025c15242 fix typo 2015-08-20 10:27:06 +02:00
Maximilian Hils
9920de1e15 tcp._Connection: clean up code, fix inheritance 2015-08-19 16:06:33 +02:00
Maximilian Hils
6810fba54e add ssl peek polyfill 2015-08-19 16:05:42 +02:00
Thomas Kriechbaumer
9686a77dcb http2: implement request target 2015-08-18 22:17:00 +02:00
Thomas Kriechbaumer
07a1356e2f http2: add support for too large header frames 2015-08-18 21:22:42 +02:00
Thomas Kriechbaumer
0d384ac2a9 http2: add support for too large data frames 2015-08-18 21:22:42 +02:00
Maximilian Hils
231656859f TCPClient: more sophisticated address handling 2015-08-18 21:08:42 +02:00
Maximilian Hils
62416daa4a add Reader.peek() 2015-08-18 21:08:01 +02:00
Maximilian Hils
c92dc1b868 re-add form_out 2015-08-18 21:07:38 +02:00
Aldo Cortesi
3d30667125 Bump netlib version - 0.13.1 is already out 2015-08-17 10:21:30 +12:00
Thomas Kriechbaumer
85cede47aa allow direct ALPN callback method 2015-08-16 11:41:34 +02:00
Thomas Kriechbaumer
b7e6e1c9b2 add HTTP/1.1 ALPN version string 2015-08-15 17:49:59 +02:00
Thomas Kriechbaumer
6a30ad2ad2 fix minor style offences 2015-08-10 20:50:05 +02:00
Thomas Kriechbaumer
ff27d65f08 cleanup whitespace 2015-08-10 20:44:36 +02:00
Thomas Kriechbaumer
476badf45c cleanup imports 2015-08-10 20:36:47 +02:00
Thomas Kriechbaumer
690b8b4f4e add move tests and code from mitmproxy 2015-08-10 20:34:27 +02:00
Maximilian Hils
c2832ef72b fix mitmproxy/mitmproxy#705 2015-08-03 18:06:31 +02:00
Thomas Kriechbaumer
6a678d86e1 fix mitmproxy tests 2015-08-02 11:27:01 +02:00
Thomas Kriechbaumer
0be84fd6b9 fix tutils imports 2015-08-01 14:49:15 +02:00
Thomas Kriechbaumer
a837230320 move code from mitmproxy to netlib 2015-08-01 12:40:40 +02:00
Thomas Kriechbaumer
7b10817670 http2: improve protocol 2015-07-30 19:40:00 +02:00
Thomas Kriechbaumer
c7fcc2cca5 add on-the-wire representation methods 2015-07-29 11:27:43 +02:00
Thomas Kriechbaumer
827fe824d9 move code from mitmproxy to netlib 2015-07-27 11:48:38 +02:00
Maximilian Hils
fb48217224 improve pyopenssl version check 2015-07-25 13:30:25 +02:00
Maximilian Hils
b57c1386a1 Merge pull request #81 from Kriechi/protocol-refactor
HTTP protocol refactoring
2015-07-24 16:50:56 +02:00
Maximilian Hils
1b26161382 add distinct error for cert verification issues 2015-07-24 16:47:28 +02:00
Thomas Kriechbaumer
657973eca3 fix bugs 2015-07-22 16:13:06 +02:00
Thomas Kriechbaumer
faf17d3d60 http2: make proper use of odict 2015-07-22 15:30:51 +02:00
Thomas Kriechbaumer
ecc7ffe928 reduce public interface
use private indicator pattern “_methodname”
2015-07-22 15:30:51 +02:00
Thomas Kriechbaumer
83f013fca1 introduce EmptyRequest class 2015-07-22 15:30:51 +02:00
Thomas Kriechbaumer
d62dbee0f6 rename content -> body 2015-07-22 15:30:51 +02:00
Thomas Kriechbaumer
37a0cb858c introduce ConnectRequest class 2015-07-22 15:30:51 +02:00
Thomas Kriechbaumer
4617ab8a3a add Request class and unify read_request interface 2015-07-22 15:30:51 +02:00
Thomas Kriechbaumer
808b294865 refactor HTTP/1 as protocol 2015-07-22 15:30:51 +02:00
Thomas Kriechbaumer
230c16122b change HTTP2 interface to match HTTP1 2015-07-22 15:30:51 +02:00
Thomas Kriechbaumer
bab6cbff1e extract authentication methods from protocol 2015-07-22 15:30:51 +02:00
Thomas Kriechbaumer
f50deb7b76 move bits around 2015-07-22 15:30:51 +02:00
Thomas Kriechbaumer
bd5ee21284 refactor websockets into protocol 2015-07-22 15:30:50 +02:00
Thomas Kriechbaumer
6dcfc35011 introduce http_semantics module
used for generic HTTP representation
everything should apply for HTTP/1 and HTTP/2
2015-07-22 15:30:50 +02:00
Maximilian Hils
e316a9cdb4 bump version 2015-07-22 13:39:48 +02:00
Kyle Morton
c17af4162b Added a fix for pre-1.0 OpenSSL which wasn't correctly erring on failed certificate validation 2015-07-21 19:15:11 -07:00
Kyle Morton
155bdeb123 Fixing default CA which ought to be read as a pemfile and not a directory 2015-07-21 18:09:42 -07:00
Maximilian Hils
9fdc412fa0 bump version 2015-07-22 00:17:05 +02:00
M. Utku Altinkaya
397b3bba5e Fixed version error formatting issue 2015-07-21 13:17:46 +03:00
Maximilian Hils
880c66fe48 socks: optionally fail early 2015-07-03 02:45:12 +02:00
Maximilian Hils
9aaf10120d socks: add assert_socks5 method 2015-07-03 02:01:30 +02:00
Kyle Morton
0a2b25187f Fixing how certifi is made the default ca_path to simplify calling logic. 2015-06-26 14:57:00 -07:00
Maximilian Hils
2723a0e573 remove certffi 2015-06-26 13:26:35 +02:00
Aldo Cortesi
41925b01f7 Fix printing of SSL version error
Fixes #73
2015-06-25 10:37:01 +12:00
Aldo Cortesi
db6576ca6f Merge pull request #76 from kyle-m/master
Provide debugging information when upstream server certificate fails validation
2015-06-24 09:27:08 +12:00
Aldo Cortesi
80dd703a2a Merge branch 'Kriechi-ssl-version-handling' 2015-06-23 22:18:10 +12:00
Aldo Cortesi
239f4758af Remove dependence on pathod in test suite. 2015-06-23 22:16:03 +12:00
Kyle Morton
d1452424be Cleaning up upstream server verification. Adding storage of cerificate
verification errors on TCPClient object to enable warnings in downstream
projects.
2015-06-22 17:31:13 -07:00
Kyle Morton
7afe44ba4e Updating TCPServer to allow tests (and potentially other use cases) to serve
certificate chains instead of only single certificates.
2015-06-22 16:48:09 -07:00
Thomas Kriechbaumer
58118d607e unify SSL version/method handling 2015-06-22 20:39:34 +02:00
Aldo Cortesi
2aa1b98fbf netlib/test.py -> test/tservers.py 2015-06-22 14:52:23 +12:00
Thomas Kriechbaumer
f5c5deb2ae fix http user agents 2015-06-18 17:36:58 +02:00
Thomas Kriechbaumer
69e71097f7 mark unused variables and arguments 2015-06-18 17:14:38 +02:00
Aldo Cortesi
4579c67150 Merge branch 'master' of https://github.com/kyle-m/netlib into kyle-m-master 2015-06-18 12:23:03 +12:00
Aldo Cortesi
6e301f37d0 Only set OP_NO_COMPRESSION by default if it exists in our version of OpenSSL
We'll need to start testing under both new and old versions of OpenSSL
somehow to catch these...
2015-06-18 12:18:22 +12:00
Aldo Cortesi
4152b14387 Merge pull request #71 from Kriechi/landscape
fix warnings and code smells
2015-06-18 12:07:20 +12:00
Thomas Kriechbaumer
836b1eab97 fix warnings and code smells
use prospector to find them
2015-06-17 13:10:27 +02:00
Kyle Morton
c9c93af453 Adding certifi as default CA bundle. 2015-06-16 11:11:10 -07:00
Thomas Kriechbaumer
eb823a04a1 http2: improve :authority header 2015-06-16 15:00:29 +02:00
Thomas Kriechbaumer
abb37a3ef5 http2: improve test suite 2015-06-16 15:00:28 +02:00
Thomas Kriechbaumer
20c136e070 http2: return stream_id from request for response 2015-06-16 15:00:28 +02:00
Thomas Kriechbaumer
1c124421e3 http2: fix header_block_fragments and length 2015-06-16 15:00:28 +02:00
Thomas Kriechbaumer
d0a9d3cdda http2: only first headers frame as END_STREAM flag 2015-06-16 15:00:28 +02:00
Thomas Kriechbaumer
e3db241a2f http2: improve frame output 2015-06-16 15:00:28 +02:00
Thomas Kriechbaumer
79ff439930 add elliptic curve during TLS handshake 2015-06-16 15:00:28 +02:00
Thomas Kriechbaumer
12702b9a01 http2: improve frame output 2015-06-16 14:55:08 +02:00
Aldo Cortesi
bb206323ab Merge pull request #69 from kyle-m/master
Adding support for upstream certificate validation when using SSL/TLS…
2015-06-16 10:34:09 +12:00
Kyle Morton
fe764cde52 Adding support for upstream certificate validation when using SSL/TLS with an
instance of TCPClient.
2015-06-15 10:18:54 -07:00
Thomas Kriechbaumer
0d137eac6f simplify ALPN 2015-06-14 19:50:35 +02:00
Thomas Kriechbaumer
8d71a5b4ab http2: add authority header 2015-06-14 19:43:32 +02:00
Thomas Kriechbaumer
9c6d237d02 add new TLS methods 2015-06-14 18:17:53 +02:00
Thomas Kriechbaumer
5fab755a05 add more tests 2015-06-12 15:27:29 +02:00
Thomas Kriechbaumer
a901bc3032 http2: add response creation 2015-06-12 14:45:51 +02:00
Thomas Kriechbaumer
8ea157775d http2: general improvements 2015-06-12 14:42:07 +02:00
Thomas Kriechbaumer
eeaed93a83 improve ALPN integration 2015-06-11 15:37:17 +02:00
Thomas Kriechbaumer
0595585974 fix coding style 2015-06-08 17:00:03 +02:00
Thomas Kriechbaumer
fdbb3b76cf http2: add warning if raw data looks like HTTP/1 2015-06-08 16:54:19 +02:00
Thomas Kriechbaumer
abbe88c8ce fix non-ALPN supported OpenSSL-related tests 2015-06-08 13:25:42 +02:00
Thomas Kriechbaumer
4666d1e7bb improve ALPN support on travis 2015-06-08 12:52:06 +02:00
Thomas Kriechbaumer
359ef46905 fix coding style 2015-06-08 12:29:39 +02:00
Aldo Cortesi
9c48bfb2a5 http2: ditch the logging for now
The API is well designed: it looks like we can get all the information
we need to expose debugging in the caller of the API.
2015-06-06 12:30:53 +12:00
Aldo Cortesi
f2d784896d http2: resolve module structure and circular dependencies
- Move implementation out of __init__.py to protocol.py (an anti-pattern
because it makes the kind of structural refactoring we need hard)
- protocol imports frame, frame does not import protocol. To do this, we
shift the default settings to frame. If this feels wrong, we can move
them to a separate module (defaults.py?.).
2015-06-06 12:26:48 +12:00
Aldo Cortesi
fcaabeb455 Merge pull request #65 from Kriechi/h2-client
HTTP/2 protocol definition
2015-06-06 11:54:35 +12:00
Thomas Kriechbaumer
f2db8abbe8 use open instead of file 2015-06-05 20:52:11 +02:00
Thomas Kriechbaumer
fdc908cb98 http2: add protocol tests 2015-06-05 20:19:48 +02:00
Thomas Kriechbaumer
f003f87197 http2: rename module and refactor as strategy 2015-06-05 13:33:37 +02:00
Thomas Kriechbaumer
623dd850e0 http2: add logging and error handling 2015-06-05 13:33:37 +02:00
Thomas Kriechbaumer
40fa113116 http2: change header_block_fragment handling 2015-06-05 13:33:37 +02:00
Thomas Kriechbaumer
5cecbdc168 http2: add basic protocol handling 2015-06-05 13:33:37 +02:00
Thomas Kriechbaumer
e4c129026f http2: introduce state for connection objects 2015-06-05 13:33:37 +02:00
Thomas Kriechbaumer
436291764c http2: fix default settings 2015-06-05 13:33:37 +02:00
Thomas Kriechbaumer
9883509f89 simplify default ssl params for test servers 2015-06-05 13:33:37 +02:00
Aldo Cortesi
0269d0fb8b repr for websocket frames 2015-06-05 17:08:22 +12:00
Aldo Cortesi
2d9b9be1f4 Revert "tcp: clear_log to clear socket logs"
start_log also clears the log, which is good enough.

This reverts commit 4ca62e0d9b.
2015-06-05 11:50:29 +12:00
Aldo Cortesi
4ca62e0d9b tcp: clear_log to clear socket logs 2015-06-05 11:42:06 +12:00
Aldo Cortesi
113c5c187f Bump version 2015-06-04 11:14:47 +12:00
Maximilian Hils
c725325a78 Merge pull request #61 from Kriechi/distribute-cffi
distribute cffi correctly
2015-05-31 11:44:27 +02:00
Aldo Cortesi
35856ead07 websockets: nicer human readable 2015-05-31 17:24:44 +12:00
Aldo Cortesi
f7bd690e3a When we see an incomplete read with 0 bytes, it's a disconnect
Partially fixes mitmproxy/mitmproxy:#593
2015-05-31 17:18:55 +12:00
Aldo Cortesi
73376e605a Save first byte timestamp for writers too. 2015-05-31 16:54:14 +12:00
Aldo Cortesi
4ec181c140 Move version check to netlib, unit test it. 2015-05-31 13:12:01 +12:00
Thomas Kriechbaumer
b395049a85 distribute cffi correctly 2015-05-30 15:15:08 +02:00
Aldo Cortesi
f76bfabc5d Adjust pep8 parameters, reformat 2015-05-30 12:02:58 +12:00
Thomas Kriechbaumer
c32d8189fa cleanup imports 2015-05-29 17:00:38 +02:00
Thomas Kriechbaumer
e2de49596d add HTTP/2-capable client 2015-05-29 15:31:22 +02:00