Commit Graph

1304 Commits

Author SHA1 Message Date
Marten Seemann
713df41c8b verify certificates using a client TLS config, if given
ref #407
2017-02-03 15:46:38 +07:00
Marten Seemann
b455f3ee6a fix flaky h2quic server test 2017-02-02 15:34:46 +07:00
Marten Seemann
90983470e8 fix logging of REJs and SHLOs 2017-02-02 14:16:46 +07:00
Marten Seemann
1800e47607 update CIs to Go 1.7.5 2017-01-28 23:15:03 +09:00
Marten Seemann
7e0cb8072b don’t panic if a request handler replaces the request.Body
fixes #405
2017-01-28 23:00:34 +09:00
Marten Seemann
dfa0137bd6 close the connection when encountering an error on the header stream
fixes #403
2017-01-26 14:12:50 +09:00
Marten Seemann
86e02c4d2c use cryptographic random to generate new connection IDs
fixes #348
2017-01-18 14:19:53 +07:00
Marten Seemann
d5ec70fc7d Merge pull request #399 from lucas-clemente/wip-client
implement a QUIC client
2017-01-18 14:04:36 +07:00
Marten Seemann
68c8bb27b9 update README 2017-01-18 13:07:21 +07:00
Marten Seemann
f286ba3d36 fix error code when there are no common version in version negotiation 2017-01-18 10:22:04 +07:00
Marten Seemann
16448cb2db run client integration tests with every QUIC version 2017-01-16 16:34:50 +07:00
Marten Seemann
7284a74332 fix another flaky h2quic client test 2017-01-16 16:23:34 +07:00
Marten Seemann
99bc18efd8 explicitly fail tests if name resolution fails 2017-01-16 15:28:59 +07:00
Marten Seemann
06aa2489ba add an integration test for uploading data with the client 2017-01-16 15:23:23 +07:00
Marten Seemann
f08e00630d fix flaky h2quic client test 2017-01-16 12:22:03 +07:00
Marten Seemann
1eeb249876 add more integration tests for downloading data with the client 2017-01-16 10:38:58 +07:00
Marten Seemann
cdcb4163c0 add a simple integration test for the client 2017-01-16 10:35:59 +07:00
Marten Seemann
c71e8cfb25 log sent CHLOs 2017-01-14 19:00:24 +07:00
Marten Seemann
82f2298658 fix race condition in client crypto setup 2017-01-14 19:00:23 +07:00
Marten Seemann
e3b34f2120 implement sending of the request body 2017-01-14 19:00:22 +07:00
Marten Seemann
cc97a2fba4 print request body in example client 2017-01-14 18:58:47 +07:00
Marten Seemann
6dd297379b set EndStream header in HeadersFrame 2017-01-14 18:58:47 +07:00
Marten Seemann
db09de621c detect version downgrade attacks in the client crypto setup 2017-01-14 18:58:47 +07:00
Marten Seemann
b52204322f don’t modify version slice when finding the highest supported version
will be needed for detecting version downgrade attacks
2017-01-14 18:58:47 +07:00
Marten Seemann
1854279bb5 reject requests with an invalid request method 2017-01-14 18:58:46 +07:00
Marten Seemann
feec325083 validate HTTP headers and request scheme in RoundTripper 2017-01-14 18:58:46 +07:00
Marten Seemann
1061bd4492 reject requests with missing URL or Header in the RoundTripper 2017-01-14 18:58:46 +07:00
Marten Seemann
53706049c7 read connection parameters when receiving a SHLO 2017-01-14 18:58:46 +07:00
Marten Seemann
a587af079d improve the connection parameters manager for the client 2017-01-14 18:58:46 +07:00
Marten Seemann
64c4bede3e remove unnecessary loop from connection parameters manager 2017-01-14 18:58:45 +07:00
Marten Seemann
128bad04e5 add option to disable compresson to QuicRoundTripper 2017-01-14 18:58:45 +07:00
Marten Seemann
d028624f77 implement compressed requests and responses 2017-01-14 18:58:45 +07:00
Marten Seemann
edb34b1765 close the quic client on protocol errors in h2quic client 2017-01-14 18:58:45 +07:00
Marten Seemann
44271a8ec8 fix mutexes for writing requests in h2quic client 2017-01-14 18:58:45 +07:00
Marten Seemann
9790418eb7 only close the client once 2017-01-14 18:58:44 +07:00
Marten Seemann
ad7de3c99d fix flaky client test 2017-01-14 18:58:44 +07:00
Marten Seemann
6ece13f9ab add a better example client 2017-01-14 18:58:44 +07:00
Marten Seemann
40a6577dc3 implement a basic QUIC RoundTripper 2017-01-14 18:58:44 +07:00
Marten Seemann
c547ced3ce correctly read the hostname from a http.Request 2017-01-14 18:58:44 +07:00
Marten Seemann
14135798c0 compose a http.Response in h2quic client 2017-01-14 18:58:44 +07:00
Marten Seemann
0401b12f8a handle the header stream in the h2quic client 2017-01-14 18:58:43 +07:00
Marten Seemann
08c267431b implement closing the quic client with an error 2017-01-14 18:58:43 +07:00
Marten Seemann
c42262c2b3 implement a h2quic client that can send H2 requests 2017-01-14 18:58:43 +07:00
Marten Seemann
b9f9c2e429 save correct hostname in quic Client 2017-01-14 18:58:43 +07:00
Marten Seemann
3458514744 add a method to open new Streams to the client 2017-01-14 18:58:43 +07:00
Marten Seemann
a8bbe66d5c use a better mockStream in h2quic tests 2017-01-14 18:58:40 +07:00
Marten Seemann
a7afd72795 add a callback that is called when the crypto level changes 2017-01-14 18:54:18 +07:00
Marten Seemann
4130c3de32 send priority in H2 request headers
is required by Google’s QUIC implementation
2017-01-14 18:54:18 +07:00
Marten Seemann
dc05de3312 add a callback to client that is called after the version is negotiated 2017-01-14 18:54:18 +07:00
Marten Seemann
2377b3a111 fix detection when the QUIC version is negotiated 2017-01-14 18:54:18 +07:00