Commit Graph

1445 Commits

Author SHA1 Message Date
Lucas Clemente
fb5cccf799 Update expired certificate 2017-04-03 09:49:28 +02:00
Lucas Clemente
e66548688e Merge pull request #502 from lucas-clemente/loss-recovery
Implement loss recovery from the current WG draft
2017-04-02 11:05:19 +02:00
Lucas Clemente
612fa16a43 Move SentPacketHandler.CheckForError into SentPacket 2017-04-02 10:29:09 +02:00
Lucas Clemente
1c5380c49b Implement loss recovery from the current WG draft
Fixes #498 and will hopefully go a long way towards fixing the many
flaky tests.
2017-04-02 10:29:09 +02:00
Lucas Clemente
959a8d0e4f Merge pull request #503 from lucas-clemente/fix-484
Fix flaky appveyor tests
2017-03-31 10:24:49 +02:00
Lucas Clemente
22cdbf7b49 Fix flaky appveyor tests
We were relying on the number of goroutines in those tests. This commit
replaces that logic with grepping through the current callstack.

The 'doesn't return after version negotiation is established if no
ConnState is defined' test is disabled, since I can't figure out a way
to make it work without leaking sessions. I filed #506 to track that
work.

Fixes #484.
2017-03-30 21:13:24 +02:00
Marten Seemann
75ac4e6781 Merge pull request #504 from lucas-clemente/fix-499
enable flow control window auto-tuning for the first WindowUpdate
2017-03-30 16:43:06 +07:00
Marten Seemann
951b85d42a enable flow control window auto-tuning for the first WindowUpdate
fixes #499
2017-03-30 12:45:19 +07:00
Marten Seemann
584fc021bf add tests for incorrect nullAEAD signatures in both cryptoSetups 2017-03-22 19:32:54 +07:00
Marten Seemann
19aad731ed improve logging and tests of cryptoSetupServer 2017-03-22 19:23:48 +07:00
Marten Seemann
0ef6527165 simplify version negotiation code in the client 2017-03-22 18:31:23 +07:00
Marten Seemann
906f80e804 Merge pull request #493 from lucas-clemente/raceconditions
improve the CryptoSetup interface
2017-03-22 18:12:10 +07:00
Marten Seemann
2903f9b238 return a lambda to for sealing a packet in the CryptoSetup 2017-03-22 16:52:00 +07:00
Marten Seemann
b4d22b3c75 fix race condition in the client 2017-03-22 16:50:33 +07:00
Lucas Clemente
06446b95f3 Merge pull request #491 from lucas-clemente/lucas-clemente-patch-1
Change client example to point to clemente.io
2017-03-21 15:04:33 +01:00
Marten Seemann
f4113b772a remove stray Print command in tests 2017-03-20 16:10:30 +07:00
Marten Seemann
a0bb98207b Merge pull request #489 from lucas-clemente/fix-411
send a Public Reset when receiving a CHLO with the FHL2 tag
2017-03-20 16:07:08 +07:00
Marten Seemann
ab12aa2f26 Merge pull request #487 from lucas-clemente/drop-34
drop support for QUIC 34
2017-03-20 16:04:42 +07:00
Lucas Clemente
016ae607a5 Change client example to point to clemente.io
This caused confusion in #486.
2017-03-20 10:01:19 +01:00
Marten Seemann
6d5c9776e9 send a Public Reset when receiving a CHLO with the FHL2 tag
Fixes #411.

Chrome sends the FHL2 when it wants to perform a head-of-line blocking
experiment, introduced in QUIC version 36 (see
https://codereview.chromium.org/2115033002). We don’t support this
experiment. By sending a Public Reset when receiving this tag we force
Chrome to use the TCP fallback.
2017-03-20 12:35:34 +07:00
Marten Seemann
28c115fee1 drop support for QUIC 34
fixes #368
2017-03-19 20:57:28 +07:00
Marten Seemann
9a1e86cf5e Merge pull request #485 from lucas-clemente/fix-483
return an error when the network conn is closed in Listener.Serve()
2017-03-17 10:11:04 +07:00
Marten Seemann
021c9d5bcd return an error when the network conn is closed in Listener.Serve()
fixes #483
2017-03-16 14:04:19 +07:00
Marten Seemann
6d0ac39cf7 Merge pull request #482 from lucas-clemente/fix-479
send a HeadersStreamDataDecompressFailure error when H2 frame parsing fails
2017-03-15 17:15:21 +07:00
Marten Seemann
79d1bd9061 Merge pull request #481 from lucas-clemente/too-large-packets
remove ineffective check for too large packets
2017-03-15 17:15:11 +07:00
Marten Seemann
7f416a06c4 send a HeadersStreamDataDecompressFailure error when H2 frame parsing fails
fixes #479
2017-03-15 11:11:38 +07:00
Marten Seemann
841421ef7a remove ineffective check for too large packets
closes #468
2017-03-15 09:30:06 +07:00
Marten Seemann
4f16503ab9 save the TLS config in the h2quic client
fixes #476
2017-03-15 09:18:06 +07:00
Marten Seemann
0a825a397d Merge pull request #477 from lucas-clemente/session-localaddr
add a Session.LocalAddr()
2017-03-10 00:38:34 +07:00
Marten Seemann
ab90b3f4d0 add tests for session.LocalAddr and session.RemoteAddr 2017-03-10 00:13:20 +07:00
Marten Seemann
34b688b3b9 add a LocalAddr to the Session 2017-03-10 00:07:27 +07:00
Marten Seemann
1b8334c344 Merge pull request #473 from lucas-clemente/fix-471
only send Public Reset after a timeout
2017-03-08 18:49:09 +07:00
Marten Seemann
eb7ed2624a only send Public Reset after a timeout
fixes #471
2017-03-08 18:15:52 +07:00
Marten Seemann
622e856e3f update README 2017-03-08 10:31:39 +07:00
Marten Seemann
c98a62032e Merge pull request #469 from lucas-clemente/fix-467
read packets with the maximum packet size
2017-03-06 18:27:53 +07:00
Marten Seemann
f5bbe316e8 use OpenStreamSync to open the data stream in the h2quic client 2017-03-06 14:55:46 +07:00
Marten Seemann
1f01904270 read packets with the maximum packet size
fixes #467
2017-03-06 13:02:46 +07:00
Lucas Clemente
eff9c6f906 Merge pull request #459 from lucas-clemente/fix-458
Fix reading of tls.Config certificates
2017-03-02 12:40:24 +01:00
Lucas Clemente
d4a3613a5f Merge pull request #463 from lucas-clemente/lucas-clemente-patch-1
Retry travis builds up to 3 times
2017-03-02 12:40:09 +01:00
Lucas Clemente
33b0a45981 Retry travis builds up to 3 times 2017-03-02 11:13:00 +01:00
Lucas Clemente
723f86c725 Don't use GetConfigForClient on go < 1.8 2017-03-02 10:40:20 +01:00
Marten Seemann
362bd3e9e0 Merge pull request #462 from lucas-clemente/fix-461
fix detection of duplicate stream data in streamFrameSorter
2017-03-02 14:19:39 +07:00
Marten Seemann
7b16392993 fix detection of duplicate stream data in streamFrameSorter
fixes #461
2017-03-02 13:48:03 +07:00
Lucas Clemente
37593993dd Merge pull request #448 from lucas-clemente/new-api-docs
Improve documentation for our new API
2017-03-01 21:42:21 +01:00
Lucas Clemente
5e76245e61 improve documentation in response to code review 2017-03-01 21:40:24 +01:00
Lucas Clemente
219ce60a5e Call GetConfigForClient in tls.Config if present 2017-03-01 21:11:52 +01:00
Lucas Clemente
1bb4a26965 Fix reading of tls.Config certificates
This commit mostly copies the getCertificate function from crypto/tls to
align our certificate reading with the standard library.

Should fix #458.
2017-03-01 18:33:05 +01:00
Marten Seemann
c26e2bba4b Merge pull request #449 from lucas-clemente/new-fix-391
immediately switch to forward-secure crypto after sending the SHLO
2017-03-01 15:31:34 +07:00
Marten Seemann
8c5e7818a0 retransmit the diversification nonce in the packet carrying the SHLO
The packet containing the SHLO is the only packet that is sent with
initial encryption. If it is lost, we need to make sure that the
diversification nonce is included in the PublicHeader, otherwise the
client will not be able to derive the keys for the forward-secure
encryption.
2017-03-01 15:11:01 +07:00
Marten Seemann
b5c8c11c0c switch to forward-secure encryption after sending the SHLO 2017-03-01 14:11:25 +07:00