Commit Graph

847 Commits

Author SHA1 Message Date
Marten Seemann
76c742a43d include the frame type in the QuicError error message 2019-11-09 11:39:35 +07:00
Marten Seemann
2c2b5da612 Merge pull request #2209 from lucas-clemente/stream-count-errors
throw FRAME_ENCODING_ERRORs when MAX_STREAMs and STREAMS_BLOCKED frame exceed the maximum stream count
2019-11-09 11:37:23 +07:00
Marten Seemann
5af9d82de8 Merge pull request #2210 from lucas-clemente/application-error-codes
use the application-specific variant of CONNECTION_CLOSE
2019-11-09 11:36:52 +07:00
Marten Seemann
a472ac4731 use application-specific CONNECTION_CLOSE for application errors 2019-11-08 13:52:15 +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
9f5df74bd1 add a test that protocol.MaxStreamCount has the correct value 2019-11-08 11:42:24 +07:00
Marten Seemann
4febf95c0b fix certificate check in the example client 2019-11-07 10:29:55 +07:00
Marten Seemann
121795977d implement issuing and retiring of connection IDs 2019-11-05 11:00:07 +07:00
Marten Seemann
011642e471 update the connection ID after sending 10000 packets 2019-11-05 10:59:21 +07:00
Marten Seemann
37600e049d implement the active_connection_id_limit transport parameter 2019-11-05 10:59:21 +07:00
Marten Seemann
031c1709e6 implement a basic store for new connection IDs 2019-11-05 10:59:21 +07:00
Marten Seemann
f61f251fce implement correct dropping of Initial keys 2019-11-04 13:33:17 +07:00
Marten Seemann
cc9fa055a6 rename the sealer to longHeaderSealer for consistency 2019-11-04 11:31:20 +07:00
Marten Seemann
416fe8364e remove unused return value from session constructor 2019-10-27 15:35:34 +07:00
Marten Seemann
4834159210 use the TRANSPORT_PARAMETER_ERROR 2019-10-25 06:47:26 +07:00
Marten Seemann
82873477ed remove stray log statement in setLossDetectionTimer() 2019-10-24 17:02:30 +07:00
Julien Salleyron
f110af917b Remove QUIC version hint 2019-10-21 17:18:02 +02:00
Marten Seemann
d91da7401b allow PING frames at every encryption level 2019-10-15 10:17:02 -07:00
Marten Seemann
2ef8429ce1 Merge pull request #2166 from juliens/alt-svc
Fix Alt-Svc header
2019-10-14 05:17:25 +07:00
Julien Salleyron
3c08c885ae Handle new version format 2019-10-13 22:50:53 +02:00
Marten Seemann
efe65b5491 fix putting of a nil ClientSessionState into a qtls.ClientSessionCache 2019-10-13 05:09:59 -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
57a9ed3379 Merge pull request #2134 from lucas-clemente/draft-23-test-vectors
update the Initial salt to draft-23
2019-09-17 08:06:33 +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
1d6359543d update the Initial salt to draft-23 2019-09-12 10:06:36 +07:00
Marten Seemann
fc962d1837 Merge pull request #2117 from lucas-clemente/send-pooled-stream-frames
use the STREAM frame buffer for receiving stream data
2019-09-08 10:23:46 +07:00
Marten Seemann
b083fd6f0e Merge pull request #2125 from lucas-clemente/chacha-header-protection
implement ChaCha20 header protection
2019-09-07 16:32:19 +07:00
Marten Seemann
4cb8bf3101 put STREAM frames back into the pool when they are acknowledged 2019-09-07 16:31:52 +07:00
Marten Seemann
4cfbb2f134 use STREAM frames from the buffer for sending data 2019-09-07 16:31:52 +07:00
Marten Seemann
039d7ae888 Merge pull request #2116 from lucas-clemente/stream-frame-pool
use a STREAM frame buffer for receiving stream data
2019-09-07 16:31:05 +07:00
Marten Seemann
de3e1a3de5 log the cipher suite 2019-09-07 11:47:21 +07:00
Marten Seemann
fa89ec345a add support for ChaCha20 header protection 2019-09-07 11:36:50 +07:00
Marten Seemann
33b74fca79 use the new qtls SetWriteKey and SetReadKey interface 2019-09-07 11:36:06 +07:00
Marten Seemann
63c079e234 move header protection to a separate struct 2019-09-07 11:32:48 +07:00
Marten Seemann
717e6d5c96 implement serving multiple connections at the same time 2019-09-05 13:10:26 +07:00
Marten Seemann
5ea33cd31e implement a buffer pool for STREAM frames 2019-09-04 16:55:30 +07:00
Marten Seemann
d689f9a392 Merge pull request #2098 from lucas-clemente/fix-crypto-setup-close-deadlock
fix deadlock when the crypto setup is closed while qtls writes messages
2019-09-01 11:17:42 +07:00
Marten Seemann
bcac555574 Merge pull request #2096 from lucas-clemente/stream-retransmissions
handle retransmissions for STREAM frames at each stream
2019-08-31 17:59:19 +07:00
Marten Seemann
3550aea322 Merge pull request #2099 from lucas-clemente/stateless-reset-size
rework stateless reset size
2019-08-31 17:40:09 +07:00
Marten Seemann
3525a51ada add an OnAcked callback to ackhandler.Frames 2019-08-31 17:34:54 +07:00
Marten Seemann
e622207822 assemble ackhandler.Frames, not wire.Frames, when packing a packet 2019-08-31 17:34:54 +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
b8c89bc905 Merge pull request #2092 from lucas-clemente/max-ack-delay-overflow
handle negative max_ack_delay values in the transport parameters
2019-08-31 17:13:40 +07:00
Marten Seemann
0063b1e945 Merge pull request #2061 from lucas-clemente/fix-ack-delay-with-non-monotonic-clock
make sure that the ACK delay time is always a positive value
2019-08-31 17:10:28 +07:00
Marten Seemann
d02fd5178a adjust the minimum size for stateless resets to the new header format 2019-08-31 12:33:53 +07:00