Commit Graph

2340 Commits

Author SHA1 Message Date
Marten Seemann
f90029ef64 change ReceivedPacketHandler such that it can generate ACKs for packet number 0 2017-12-07 21:33:34 +07:00
Marten Seemann
a79e9ee35e parse and write STOP_WAITING frames for packet number 0 2017-12-07 21:33:34 +07:00
Marten Seemann
6ce3336be5 parse and write ACKs that for packet number 0 2017-12-07 21:33:34 +07:00
Marten Seemann
cc3bfc1fa7 remove bug check for increasing packet number in SentPacketHandler 2017-12-07 21:33:34 +07:00
Marten Seemann
6695983a43 remove error var and internalize member variable in SentPacketHandler 2017-12-07 21:33:34 +07:00
Marten Seemann
196efa873d Merge pull request #990 from lucas-clemente/fix-989
don't send a window update after the final offset was received
2017-12-07 18:55:19 +07:00
Marten Seemann
60a2534027 Merge pull request #992 from lucas-clemente/improve-client-tests
improve client tests
2017-12-07 18:48:39 +07:00
Marten Seemann
ea7ee4cd9f Merge pull request #994 from lucas-clemente/fix-993
fix flaky Public Reset test
2017-12-07 18:42:34 +07:00
Marten Seemann
1fd5213f1a Merge pull request #978 from lucas-clemente/fix-966
use the mint default cookie protector to generate cookies
2017-12-07 18:29:32 +07:00
Marten Seemann
f51cfe9fe3 don't send a window update after the final offset was received
Receiving a final offset means the peer is done sending on that stream,
and there's no need to grant additional flow control credit.
2017-12-07 18:22:39 +07:00
Marten Seemann
1c802fcf8c improve client tests
This hopefully fixes the flaky tests on AppVeyor.
2017-12-07 18:21:59 +07:00
Marten Seemann
a29acbf960 fix flaky Public Reset test 2017-12-07 18:21:43 +07:00
Marten Seemann
7ba613c3b9 use the mint default cookie protector to encrypt and decrypt cookies 2017-12-07 18:20:22 +07:00
Marten Seemann
851b44c905 Merge pull request #995 from lucas-clemente/mint-stateless-retry
fix the crypto setup so that it works with the recent mint changes
2017-12-07 18:14:57 +07:00
Marten Seemann
80a827f133 fix the crypto setup so that it works with the recent mint changes
mint now supports stateless retries, and requires that the cookie
protector is set in the mint.Config and returns a new alert when a
retry is performed.
2017-12-07 13:49:45 +07:00
Marten Seemann
19032b7f4b Merge pull request #985 from lucas-clemente/fix-984
add an integration tests concurrently opening and closing many streams
2017-12-06 17:22:07 +07:00
Marten Seemann
4862f09b79 Merge pull request #962 from lucas-clemente/fix-871
send reserved version numbers
2017-12-06 17:21:49 +07:00
Marten Seemann
ff17ef79fe Merge pull request #987 from julienschmidt/handleHeaderStream
remove superfluous goroutine
2017-12-06 17:21:12 +07:00
Marten Seemann
663f1b9526 Merge pull request #988 from julienschmidt/encryptionLevel
remove unused encryptionLevel from client
2017-12-06 17:05:57 +07:00
Julien Schmidt
06c87af606 remove unused encryptionLevel from client 2017-12-06 10:51:28 +01:00
Julien Schmidt
54b62fb4a5 remove superfluous goroutine 2017-12-06 10:44:37 +01:00
Marten Seemann
39b7a7e0a9 add an integration tests concurrently opening and closing many streams 2017-12-06 10:24:39 +07:00
Marten Seemann
8c2404edf5 send a reserved version number in the SHLO 2017-12-06 10:20:22 +07:00
Marten Seemann
1a3852aec6 send a reserved version number in the EncryptedExtensions message 2017-12-06 10:20:22 +07:00
Marten Seemann
be29963637 send a reserved version number in version negotiation packets 2017-12-06 10:20:22 +07:00
Marten Seemann
1f5cd31569 implement a function to get version slices containing reserved versions 2017-12-06 10:20:16 +07:00
Marten Seemann
3e41cf9ba1 Merge pull request #963 from lucas-clemente/disable-conn-migration
disable connection migration
2017-12-06 10:00:58 +07:00
Marten Seemann
13b9bfb1b5 Merge pull request #974 from lucas-clemente/fix-972
implement the recent changes to the version negotiation packet
2017-12-06 09:51:43 +07:00
Marten Seemann
ad22ed9d16 disable connection migration
Connection migration is complicated: We need to verify the new path, and
reset the congestion controller. In the IETF draft, connection migration
is still work in progress.
2017-12-06 08:42:13 +07:00
Marten Seemann
45e43ada40 implement the recent changes to the version negotiation packet 2017-12-06 08:40:43 +07:00
Marten Seemann
5d900346fd Merge pull request #983 from lucas-clemente/fix-982
fix counting of incoming and outgoing streams for the client
2017-12-06 08:35:07 +07:00
Marten Seemann
7487dc22bf Merge pull request #977 from lucas-clemente/fix-971
update validation of version negotiation
2017-12-06 07:02:49 +07:00
Marten Seemann
b070fcbd43 Merge pull request #976 from lucas-clemente/fix-973
make initial_max_stream_id optional and parse initial_max_stream_id_uni
2017-12-06 06:58:15 +07:00
Marten Seemann
ce70ba497d Merge pull request #968 from lucas-clemente/remove-ack-every-20-packets
remove old code to send an ACK every 20 packets
2017-12-06 06:57:23 +07:00
Marten Seemann
9686e451fc Merge pull request #961 from lucas-clemente/fix-960
move the version field in front of the packet number in the long header
2017-12-06 06:56:53 +07:00
Marten Seemann
ba43382ebb Merge pull request #979 from lucas-clemente/examples-tls-flag
add a -tls flag to the example client and server
2017-12-06 06:56:25 +07:00
Marten Seemann
128eb13d0c fix counting of incoming and outgoing streams for the client 2017-12-05 16:36:21 +07:00
Marten Seemann
b286aae7a4 refactor stream ID parity check in the streams map
No functional change expected.
2017-12-05 15:30:52 +07:00
Marten Seemann
66f425f10e add a -tls flag to the example client and server
This will add the WIP TLS version as the preferred supported version. It
is intended for developing and testing of IETF QUIC.
2017-12-05 11:00:51 +07:00
Marten Seemann
7c8715616e update validation of version negotiation
The negotiated_version parameter was recently moved from the
client_hello TLS handshake message to the encrypted_extensions.
2017-12-05 10:35:04 +07:00
Marten Seemann
c30064bb51 parse TLS extensions containing the initial_max_stream_id_uni parameter
We're not sending the initial_max_stream_id_uni parameter, which
implicitely sets this value to 0, i.e. the peer is not allowed to open
unidirectional streams.
2017-12-05 09:17:43 +07:00
Marten Seemann
a72efca38d don't require the initial_max_stream_id in the transport parameters
The draft was recently changed to make this value optional.
2017-12-05 08:56:49 +07:00
Marten Seemann
184f81d8c4 remove old code to send an ACK every 20 packets
This was needed before QUIC 39, and should have been removed when we
dropped support for QUIC 38.
2017-12-01 12:14:54 +07:00
Marten Seemann
f440a65ef1 move the version field in front of the packet number in the long header
This was recently changed in the IETF draft.
2017-11-30 11:34:34 +07:00
Marten Seemann
ccd91a36b7 Merge pull request #956 from lucas-clemente/packet-type-names
add a string representation for the Long Header packet types
2017-11-23 06:25:35 -08:00
Marten Seemann
4076ab587e add a string representation for the Long Header packet types 2017-11-22 15:57:22 -08:00
Marten Seemann
5618950054 Merge pull request #955 from Eichhoernchen/fix-953
Make error chan not block for a single write
2017-11-22 11:53:10 -08:00
Jan Rüth
281fec1b2d Make error chan not block for a single write, allowing ParseHandshakeMessage goroutine to gracefully exit 2017-11-22 09:54:03 +01:00
Marten Seemann
214e95c655 Merge pull request #951 from lucas-clemente/rename-cleartext-packet-type
rename the Cleartext Long Header type to Handshake
2017-11-13 11:10:14 +08:00
Marten Seemann
683f244054 rename the Cleartext Long Header type to Handshake
This was recently changed in the draft.
2017-11-13 10:55:33 +08:00