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
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
Marten Seemann
2b3b760f41
Merge pull request #947 from lucas-clemente/fix-header-parsing
...
fix parsing of the Header type byte
2017-11-13 10:43:01 +08:00
Marten Seemann
7c3d6abb4b
fix parsing of the Header type byte
...
In order to determine if a packet is a Version Negotiation Packet, it is
not sufficient to just look at bit 0x1. Other packet types also have
that bit set, e.g. the Retry packet (packet type 0x3). Instead, we have
to look at the last 3 bits. This fix will work as long as IETF QUIC
doesn't define more than 8 long header types.
2017-11-13 10:23:17 +08:00
Marten Seemann
df9d28cf30
Merge pull request #949 from lucas-clemente/fix-ietf-vnp
...
echo the offered version in IETF Version Negotiation Packets
2017-11-13 09:35:29 +08:00
Marten Seemann
ca8c58babe
Merge pull request #864 from lucas-clemente/fix-863
...
reject ACKs that ack packets with a higher encryption level
2017-11-13 09:35:12 +08:00
Marten Seemann
dc8b547793
reject ACKs that ack packets with a higher encryption level
2017-11-12 15:05:14 +08:00
Marten Seemann
234d5aab36
echo the offered version in IETF Version Negotiation Packets
2017-11-12 14:37:43 +08:00
Marten Seemann
bf1ee17e67
Merge pull request #945 from lucas-clemente/fix-transport-paramter-timeout-encoding
...
fix encoding of the idle timeout for the TLS transport parameters
2017-11-12 09:23:23 +08:00
Marten Seemann
11364cbd81
fix encoding of the idle timeout for the TLS transport parameters
2017-11-11 19:48:41 +08:00
Marten Seemann
56cad16af9
Merge pull request #944 from lucas-clemente/easier-header-parsing
...
parse the packet header before getting the session from the session map
2017-11-11 08:42:45 +08:00
Marten Seemann
5d4174b2f0
parse the packet header before getting the session from the session map
2017-11-10 08:48:45 +07:00
Marten Seemann
dd722758af
Merge pull request #942 from lucas-clemente/fix-941
...
accept Public Resets without the RSEQ tag
2017-11-09 06:42:19 +07:00
Marten Seemann
bc1ef31531
accept Public Resets without the RSEQ tag
...
The RSEQ tag is mandatory according to the gQUIC spec, however, Google
doesn't include that tag in its Public Resets.
2017-11-08 11:07:53 +07:00