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
Marten Seemann
e34d83644e
Merge pull request #940 from lucas-clemente/fix-939
...
fix flaky proxy shutdown test
2017-11-07 20:55:42 +07:00
Marten Seemann
467a59093e
Merge pull request #937 from lucas-clemente/fix-server-close-race
...
fix race condition when closing the server
2017-11-07 10:49:33 +07:00
Marten Seemann
0000fe6de7
fix flaky proxy shutdown test
2017-11-07 10:14:06 +07:00
Marten Seemann
f9da93ca86
Merge pull request #938 from lucas-clemente/drop-quic37-quic38
...
drop support for QUIC 37 and 38
2017-11-07 09:53:09 +07:00
Marten Seemann
095c29dc2c
drop support for QUIC 37 and 38
2017-11-07 00:23:53 +07:00
Marten Seemann
b2c7e665ed
fix race condition when closing the server
2017-11-06 17:07:47 +07:00
Marten Seemann
2896f582bd
Merge pull request #936 from lucas-clemente/more-handshake-tests
...
add more integration tests for the handshake
2017-11-06 15:04:30 +07:00
Marten Seemann
66e4da3031
add more integration tests for the handshake
2017-11-04 22:48:16 +07:00
Marten Seemann
adb59b7085
Merge pull request #928 from lucas-clemente/crypto-stream-0
...
use stream 0 for the crypto stream when using TLS
2017-11-04 15:37:07 +07:00
Marten Seemann
9f1eb62860
implement the IETF draft BLOCKED and STREAM_BLOCKED frames
2017-11-04 15:22:14 +07:00
Marten Seemann
0f1f1c8d41
implement the MAX_DATA and MAX_STREAM_DATA frames
...
For gQUIC WINDOW_UPDATEs are converted to MAX_DATA and MAX_STREAM_DATA,
respectively.
2017-11-04 15:22:14 +07:00
Marten Seemann
ccb2e9a2df
remove check for CONGESTION_FEEDBACK in the packet unpacker
...
CONGESTION_FEEDBACK was reserved for future use in gQUIC, but has never
actually been implemented. It won't make it to IETF QUIC, so we don't
need to check for it. Note that we'd still reject a CONGESTION_FEEDBACK
frame, since we're rejecting any unknown frame type.
2017-11-04 15:22:14 +07:00
Marten Seemann
1f644debd4
set if a stream contributes to connection flow control
...
This depends on the version. In gQUIC, stream 1 and 3 don't contribute,
in IETF QUIC only stream 0 doesn't contribute.
2017-11-04 15:22:14 +07:00
Marten Seemann
f662822486
use stream 0 for the crypto stream when using TLS
2017-11-04 15:22:07 +07:00
Marten Seemann
a2b77815ad
Merge pull request #934 from lucas-clemente/improve-server-close
...
improve closing of the server
2017-11-04 08:59:37 +07:00
Marten Seemann
4d9846482d
improve closing of the server
...
Closing the sessions can be done concurrently.
2017-11-03 17:49:28 +07:00