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