Commit Graph

353 Commits

Author SHA1 Message Date
Marten Seemann
8e94f08ee5 simplify switch statement in the transport parameter parser 2021-01-11 15:29:00 +08:00
Marten Seemann
f9226887b4 rename ReadVarint / WriteVarInt / VarIntLen to Read / Write / Len 2021-01-02 00:15:07 +08:00
Marten Seemann
11c5045065 move varint encoding / decoding to a separate package
... which is not internal.
2021-01-01 11:46:45 +08:00
Marten Seemann
c7d3aeea3d move the transport parameter stream limit check to the parser 2020-12-18 13:00:33 +07:00
Marten Seemann
fd41e8fa62 reject DATAGRAM frames if datagram support is not enabled 2020-12-09 15:31:23 +07:00
Marten Seemann
021f70aac5 implement the max_datagram_frame_size transport parameter 2020-12-09 15:31:23 +07:00
Marten Seemann
c4de242751 add a MaxDataLen function for DATAGRAM frames 2020-12-09 15:31:23 +07:00
Marten Seemann
eefd2b73f7 implement parsing and writing of the DATAGRAM frames 2020-12-08 20:16:32 +07:00
Marten Seemann
2c975bca54 always use a 2-byte encoding for the packet length of Long Header packets 2020-11-14 17:39:31 +07:00
Marten Seemann
8752576f26 run gofumpt, enable the gofumpt linter 2020-10-26 09:33:35 +07:00
Marten Seemann
55a07c34ee add the exhaustive linter 2020-10-05 13:47:57 +07:00
Marten Seemann
2781606ded refactor the switch statement for parsing transport parameters 2020-10-05 13:17:06 +07:00
Marten Seemann
13fa0bcdd1 implement writing of ACK frames containing ECN counts 2020-09-14 17:01:34 +07:00
Marten Seemann
d476067f65 fix overflow of the max_ack_delay when parsing transport parameters 2020-08-20 13:49:33 +07:00
Marten Seemann
2593b1af81 add fuzzing for transport parameters 2020-08-18 11:54:28 +07:00
Marten Seemann
a1bb39d6ab introduce a protocol.StatelessResetToken 2020-07-10 19:55:20 +07:00
Marten Seemann
993d71fd56 move the SupportedVersions slice out of the wire.Header 2020-07-09 12:05:33 +07:00
Marten Seemann
838dd6e81a rename StreamFrame.FinBit to Fin 2020-07-02 16:41:43 +07:00
Marten Seemann
865332015c rename ResetStreamFrame.ByteOffset to FinalSize 2020-07-02 16:41:43 +07:00
Marten Seemann
cc340b2887 rename StreamDataBlockedFrame.DataLimit to MaximumStreamData 2020-07-02 16:41:43 +07:00
Marten Seemann
fa07078d81 rename DataBlockedFrame.DataLimit to MaximumData 2020-07-02 16:41:43 +07:00
Marten Seemann
5466de6565 rename MaxStreamDataFrame.ByteOffset to MaximumStreamData 2020-07-02 16:41:43 +07:00
Marten Seemann
f4519cfd32 rename MaxDataFrame.ByteOffset to MaximumData 2020-07-02 16:41:43 +07:00
Marten Seemann
07d4fd0991 use the new qtls interface for (re)storing app data with a session state
Application data is now retrieved and restored via two callbacks on the
qtls.Config. This allows us the get rid of the rather complex wrapping
of the qtls.ClientSessionCache. Furthermore, it makes sure that we only
restore the application data when qtls decides to actually use the
ticket.
2020-07-01 14:00:08 +07:00
Marten Seemann
4451f3bf5c marshal and unmarshal the retry_source_connection_id TP 2020-05-29 19:50:14 +07:00
Marten Seemann
72d7592fb2 marshal and unmarshal the initial_source_connection_id TP 2020-05-29 19:50:14 +07:00
Marten Seemann
b391cce35c always send the original_destination_connection_id TP as a server 2020-05-29 19:50:14 +07:00
Marten Seemann
7e62a2fecc rename original_connection_id to original_destination_connection_id TP 2020-05-29 19:50:14 +07:00
Marten Seemann
b2c4dacd25 fix int overflow when parsing the transport parameters 2020-05-24 12:59:47 +07:00
mawei
38691a1278 calculate version negotiation packet size to avoid bytes.Buffer growing the bytes 2020-05-13 12:34:39 +08:00
Marten Seemann
e116e2f4cc use decimal number for logging stream offsets and byte counts 2020-04-16 09:50:55 +07:00
Marten Seemann
140b90449b use decimal numbers when logging packet numbers 2020-04-16 09:50:55 +07:00
Marten Seemann
f58eb47383 qlog when packets are dropped due to unsupported QUIC version 2020-04-10 14:39:02 +07:00
Marten Seemann
96ac90e6be validate connection ID length in preferred_address transport parameter 2020-04-08 17:13:35 +07:00
Marten Seemann
9dec939784 Merge pull request #2432 from lucas-clemente/max-udp-payload-size
rename the max_packet_size transport parameter to max_udp_payload_size
2020-03-23 16:21:03 +07:00
Marten Seemann
d0b5da8aa1 rename the max_packet_size transport parameter to max_udp_payload_size 2020-03-21 11:12:43 +07:00
Marten Seemann
6d61dccc2f rename the constructors for the various qerr.Error flavors 2020-03-21 10:53:03 +07:00
Marten Seemann
0ef4f06189 move the transport parameters from the handshake to the wire package 2020-03-13 16:20:11 +07:00
Marten Seemann
c720250b9b only set the 0x80 bit to 1 for version negotiation packets 2020-03-10 14:43:19 +07:00
Marten Seemann
d024df7c8e implement splitting of CRYPTO frames 2020-02-26 11:24:15 +07:00
Marten Seemann
7b10453af8 implement the Retry integrity tag 2020-01-17 13:42:57 +07:00
Marten Seemann
b0c08b1bd0 implement rules for frame types in 0-RTT packets 2019-12-30 18:39:21 +04:00
Marten Seemann
355156ac4e Merge pull request #2225 from lucas-clemente/handshake-done
implement the HANDSHAKE_DONE mechanism
2019-12-18 10:07:43 +04:00
Marten Seemann
be59be9ef1 use the parsed header length when unpacking packets 2019-12-09 15:42:37 +08:00
Marten Seemann
490d9ddab2 refactor parsing of headers with invalid reserved bits 2019-12-09 14:57:19 +08:00
Marten Seemann
556e5c5559 implement parsing and writing of the HANDSHAKE_DONE frame 2019-12-06 10:29:48 +07:00
Marten Seemann
78029adfb2 improve logging of undecryptable packets 2019-11-25 14:06:44 +07:00
Marten Seemann
8e7a462007 fix encoding of the error code in the STOP_SENDING frame 2019-11-16 15:03:19 +08:00
Marten Seemann
dbdccfa70a include the frame type in the error returned by the frame parser 2019-11-09 11:39:35 +07:00
Marten Seemann
5d54a11e04 add an overflow check to the STREAMS_BLOCKED frame parser 2019-11-08 11:50:22 +07:00