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