Commit Graph

1217 Commits

Author SHA1 Message Date
Marten Seemann
d226f70cd7 allow up to 20 byte for the initial connection IDs 2020-12-14 11:32:43 +07:00
Marten Seemann
5a0ce24265 Merge pull request #2909 from lucas-clemente/qlog-generic-event
add a generic Debug() function to the connection tracer
2020-12-06 09:50:25 +07:00
Marten Seemann
ff1f433c36 add a generic Log() function to the connection tracer 2020-12-06 09:33:38 +07:00
Marten Seemann
5048006fc1 Merge pull request #2913 from lucas-clemente/remove-quictrace
remove support for quic-trace
2020-12-06 09:23:06 +07:00
Marten Seemann
eae8ad2fbb Merge pull request #2887 from lucas-clemente/reduce-num-ack-ranges
reduce the maximum number of ACK ranges
2020-12-05 23:18:43 +07:00
Marten Seemann
02b700804f remove support for quic-trace 2020-12-05 23:13:45 +07:00
Marten Seemann
1ade038211 Merge pull request #2899 from lucas-clemente/dont-allocate-for-acked-packets
don't allocate for acked packets
2020-12-05 21:08:44 +07:00
Marten Seemann
1beb6f9649 Merge pull request #2898 from lucas-clemente/dont-allocate-for-lost-packets
avoid allocating when detecting lost packets
2020-12-05 21:05:45 +07:00
Marten Seemann
95334202c5 fix decoding of packet numbers in different packet number spaces
When QUIC abandoned the "stream 0" design, it introduced separate
packet number spaces for packets with different encryption levels.
Packet number compression now also works per packet number space.
The current code doesn't lead to any problems if the peer starts sending
with packet number 0, as we only exchange a few packets in the Initial
and the Handshake packet number space and there's nothing to compress.
It might lead to problems if the peer starts with a large packet number
in one space (which is allowed by the spec), and then starts with a
small packet number in another packet number space.
2020-12-03 23:35:27 +07:00
Marten Seemann
8d14d762e5 cache the slice used when detecting acked packets 2020-11-22 11:39:28 +07:00
Marten Seemann
fb6a536adb add a unit test for ACK of skipped packet detection 2020-11-22 11:02:48 +07:00
Marten Seemann
85fd5a2ec5 avoid allocating when detecting lost packets 2020-11-22 10:50:49 +07:00
Marten Seemann
ec55b6d9de rename loop variable 2020-11-22 10:48:12 +07:00
Marten Seemann
655632b116 avoid duplicate mutex locking when reading data 2020-11-20 15:45:38 +07:00
Marten Seemann
5352cd509b remove unnecessary mutex locking in the stream flow controller 2020-11-20 15:29:55 +07:00
Marten Seemann
33c7588b18 reduce the maximum number of ACK ranges 2020-11-20 13:43:38 +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
653a107606 implement a function to encode a varint using a fixed length 2020-11-14 16:08:18 +07:00
Marten Seemann
d0cdfc8926 Merge pull request #2865 from lucas-clemente/flow-control-replace-rwmutex
replace the RWMutex with a Mutex in the flow controller
2020-11-11 10:45:11 +07:00
Marten Seemann
23e4d15283 Merge pull request #2861 from lucas-clemente/no-viable-path-error
add the NO_VIABLE_PATH error
2020-11-10 20:50:40 +07:00
Marten Seemann
3a06c188f6 replace the RWMutex with a Mutex in the flow controller 2020-11-07 10:12:46 +07:00
Marten Seemann
0c2f562411 allow an amplification factor of 3.x 2020-11-06 14:16:11 +07:00
Marten Seemann
96ac98a862 add the NO_VIABLE_PATH error 2020-11-06 12:35:49 +07:00
Marten Seemann
30c91149c2 fill out the http.Response.TLS field 2020-11-02 11:29:42 +07:00
Marten Seemann
2839cbdcff make it possible to set VersionTLS to a draft version
Go doesn't allow duplicate cases in a switch statement.
2020-11-02 11:29:42 +07:00
Marten Seemann
ff639a4d81 Merge pull request #2847 from lucas-clemente/http3-server-multiple-versions
set the ALPN based on the QUIC version in the HTTP3 server
2020-10-30 15:12:36 +07:00
Marten Seemann
6d00bdff3f Merge pull request #2841 from lucas-clemente/pad-server-initials
pad datagrams containing ack-eliciting Initial packets sent by the server
2020-10-30 15:12:03 +07:00
Marten Seemann
c968b18a21 select the H3 ALPN based on the QUIC version in use (for the H3 server) 2020-10-29 13:44:23 +07:00
Marten Seemann
8752576f26 run gofumpt, enable the gofumpt linter 2020-10-26 09:33:35 +07:00
Marten Seemann
598f975024 Merge pull request #2831 from lucas-clemente/draft-32
prepare for draft-32
2020-10-25 22:45:43 +07:00
Marten Seemann
5b80c49582 Merge pull request #2825 from lucas-clemente/update-aead-limit
update the invalid packet limit for AES
2020-10-25 22:44:20 +07:00
Marten Seemann
876ccd899b CONNECTION_CLOSE frames are not ack-eliciting 2020-10-25 13:22:33 +07:00
Marten Seemann
e1f56127df only use the conn ID backwards compatibility mode with draft-29 2020-10-22 20:33:17 +07:00
Marten Seemann
6684aded0c add version constants for draft-29 and draft-32 2020-10-22 20:33:16 +07:00
Marten Seemann
14a5aa831d increase UDP receive buffer size 2020-10-19 10:42:44 +07:00
Marten Seemann
eff36f3057 update the invalid packet limit for AES 2020-10-16 10:51:05 +07:00
Marten Seemann
0615d92ede only send Version Negotiation packets for packets larger than 1200 bytes 2020-10-08 16:22:39 +07:00
Marten Seemann
5d2b87e819 Merge pull request #2817 from lucas-clemente/qlog-key-phase-bit
qlog the key phase bit
2020-10-06 20:31:36 +07:00
Marten Seemann
471e82f883 Merge pull request #2807 from lucas-clemente/fix-post-handshake-message-error-handling
fix error handling when receiving post handshake messages
2020-10-06 20:23:53 +07:00
Marten Seemann
145e7b10d0 Merge pull request #2811 from lucas-clemente/fix-first-key-update
allow the first key update immediately after handshake confirmation
2020-10-06 20:23:19 +07:00
Marten Seemann
d5a30225ce use a uint8 to represent the key phase bit 2020-10-06 15:27:56 +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
cc21f7c648 remove unused protocol.PacketNumberLenInvalid 2020-10-05 13:17:06 +07:00
Marten Seemann
bbd9fa4862 remove the EncryptionUnspecified enum value 2020-10-05 13:17:06 +07:00
Marten Seemann
1c38acd8c9 allow the first key update immediately after handshake confirmation 2020-09-30 14:12:07 +07:00
Marten Seemann
b9090d71ae rename cryptoSetup.DropHandshakeKeys() to SetHandshakeConfirmed() 2020-09-30 12:14:16 +07:00
Marten Seemann
6ad29e721e fix error handling when receiving post handshake messages 2020-09-28 14:02:46 +07:00
Marten Seemann
ebe051b2cc Merge pull request #2805 from lucas-clemente/improve-crypto-error-string
include the error code in the string for CRYPTO_ERRORs
2020-09-26 17:54:17 +07:00
Marten Seemann
c92b0379cf Merge pull request #2804 from lucas-clemente/check-quic-transport-parameter-extension
fail the handshake if the quic_transport_parameter extension is missing
2020-09-26 17:53:51 +07:00