Commit Graph

230 Commits

Author SHA1 Message Date
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
Marten Seemann
1e7c7842b9 move overflow check in MAX_STREAMS frame to frame parser 2019-11-08 11:44:56 +07:00
Marten Seemann
d91da7401b allow PING frames at every encryption level 2019-10-15 10:17:02 -07:00
Marten Seemann
6b22f36d82 add the stylecheck linter 2019-09-17 13:50:19 +07:00
Marten Seemann
ab2b26a5cb add the unparam linter 2019-09-17 13:44:05 +07:00
Marten Seemann
07ee05b5a9 Merge pull request #2136 from lucas-clemente/empty-new-tokens
reject NEW_TOKEN frames with empty tokens
2019-09-17 08:06:47 +07:00
Marten Seemann
807dd67927 improve memory alignment of frequently used structs 2019-09-13 13:37:41 +07:00
Marten Seemann
f15a82d3fd remove stray TODO in the ExtendedHeader 2019-09-13 13:10:13 +07:00
Marten Seemann
2ea8b70ffb reject NEW_TOKEN frames with empty tokens 2019-09-13 11:00:06 +07:00
Marten Seemann
4cfbb2f134 use STREAM frames from the buffer for sending data 2019-09-07 16:31:52 +07:00
Marten Seemann
5ea33cd31e implement a buffer pool for STREAM frames 2019-09-04 16:55:30 +07:00
Marten Seemann
dd6e8a7424 Merge pull request #2095 from lucas-clemente/frame-retransmisions
retransmit frames, not packets
2019-08-31 17:34:10 +07:00
Marten Seemann
515c21dd1d simplify splitting of STREAM frames 2019-08-29 11:15:59 +07:00
Marten Seemann
2329d0e21e handle negative max_ack_delay values in the transport parameters 2019-08-25 16:15:34 +07:00
Marten Seemann
6a7b9c6412 Merge pull request #2086 from lucas-clemente/fix-conn-close-length
fix length calculcation for CONNECTION_CLOSE frames
2019-08-23 22:05:52 +07:00
Marten Seemann
0dbfefc1f6 fix length calculcation for CONNECTION_CLOSE frames 2019-08-22 12:20:13 +07:00
Marten Seemann
ccb197939d replace WriteUintN and ReadUintN by explicit functions 2019-08-20 15:59:39 +07:00
Marten Seemann
3e65cfd9c0 Merge pull request #2074 from lucas-clemente/invalid-ack-delays
gracefully handle invalid ACK delay values when parsing ACK frames
2019-08-19 11:30:34 +07:00
Marten Seemann
295533595a Merge pull request #2073 from lucas-clemente/conn-close-frame-frame-type
parse and write the frame type field in the CONNECTION_CLOSE frame
2019-08-18 20:16:22 +07:00
Marten Seemann
f0bdf4f982 gracefully handle invalid ACK delay values when parsing ACK frames 2019-08-17 12:42:10 +07:00
Marten Seemann
96f0e96e45 parse and write the frame type field in the CONNECTION_CLOSE frame 2019-08-17 11:19:39 +07:00
Marten Seemann
6bcd740f56 reject NEW_CONNECTION_ID frames with invalid Retire Prior To values 2019-08-17 11:07:38 +07:00
Marten Seemann
bb4cfe29cb fix connection ID length check in the NEW_CONNECTION_ID frame 2019-08-17 10:58:40 +07:00
Marten Seemann
879467b3c5 Merge pull request #1997 from lucas-clemente/new-header-format
implement the new header format
2019-07-16 15:00:18 +07:00