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
ed1956f5a9
Merge pull request #2869 from lucas-clemente/remove-unnecessary-mutex-operation
...
remove unnecessary mutex locking in the stream flow controller
2020-11-21 16:58:28 +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
69158cf5f1
Merge pull request #2886 from lucas-clemente/fix-syscalls
...
only use syscalls on platforms that we're actually testing
2020-11-20 00:03:53 +07:00
Marten Seemann
a9f807c316
Merge pull request #2884 from lucas-clemente/fix-header-fuzz-header-length
...
only write headers with a length that fits into 2 bytes in fuzz test
2020-11-19 23:10:05 +07:00
Marten Seemann
f0aa336e09
only write headers with a length that fits into 2 bytes in fuzz test
2020-11-19 13:43:48 +07:00
Marten Seemann
631e37cc70
only use syscalls on platforms that we're actually testing
2020-11-18 19:00:07 +07:00
Marten Seemann
287a324acf
Merge pull request #2882 from lucas-clemente/fix-1rtt-probe-packet-packing
...
fix packing of 1-RTT probe packets
2020-11-18 16:57:51 +07:00
Marten Seemann
47c3cd8bb4
send 5 kB of stream data in the handshake drop test
2020-11-17 13:34:01 +07:00
Marten Seemann
192bc8dc2a
account for the size of the header when packing 1-RTT probe packets
2020-11-17 13:08:06 +07:00
Marten Seemann
ad8367cb43
Merge pull request #2876 from lucas-clemente/fix-initial-padding
...
use PADDING frames to pad packets
2020-11-16 15:15:39 +07:00
Marten Seemann
d1a784d092
use PADDING frames to pad Initial packets
2020-11-15 10:03:14 +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
e676a83ca2
Merge pull request #2874 from lucas-clemente/fix-accept-stream-race
...
fix race condition when accepting streams
2020-11-13 18:33:34 +07:00
Marten Seemann
46991ae0ec
add a randomized test for accepting streams
2020-11-13 18:13:03 +07:00
Marten Seemann
64daf71e3a
fix race condition when stream is created while AcceptStream is waiting
2020-11-13 18:13:02 +07:00
Marten Seemann
629272c713
Merge pull request #2871 from lucas-clemente/fix-missing-tracer-check-in-session
...
only trace dropped 0-RTT packets when a tracer is set
2020-11-11 17:21:27 +07:00
Marten Seemann
0b8a67ef95
Merge pull request #2870 from lucas-clemente/client-test-fix-version-numbers
...
use consistent version numbers in client test
2020-11-11 17:19:02 +07:00
Marten Seemann
0d5de40d45
only trace dropped 0-RTT packets when a tracer is set
2020-11-11 17:13:56 +07:00
Marten Seemann
78e9a3bcad
use consistent version numbers in client test
2020-11-11 16:58:23 +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
0bd10a6517
Merge pull request #2864 from lucas-clemente/packet-handler-map-mutex-type
...
replace the RWMutex with a Mutex in the packet handler map
2020-11-11 10:44:26 +07:00
Marten Seemann
3cd8b30ea6
Merge pull request #2856 from lucas-clemente/conn-id-update-handshake-completion
...
wait until the handshake is complete before updating the connection ID
2020-11-10 20:52:09 +07:00
Marten Seemann
e8a9888f25
Merge pull request #2857 from lucas-clemente/fix-spa-conn-id-handling
...
only check the SCID for Initial packets
2020-11-10 20:51:28 +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
ac06cf2504
Merge pull request #2853 from lucas-clemente/qlog-preferred-address
...
implement qlogging of the preferred address in the transport parameters
2020-11-10 20:50:17 +07:00
Marten Seemann
0a07b339b8
Merge pull request #2854 from lucas-clemente/http-header-set-version
...
explicitly set the supported versions in the HTTP/3 server test
2020-11-10 20:49:50 +07:00
Marten Seemann
59cafab0f3
Merge pull request #2862 from lucas-clemente/simplify-amplification-limit
...
allow an amplification factor of 3.x
2020-11-10 20:49:23 +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
ba37b0e02b
replace the RWMutex with a Mutex in the packet handler map
2020-11-06 17:09:21 +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
337e2171ef
only check the SCID for Initial packets
...
There's no risk that Handshake packets could be injected by an attacker.
2020-11-02 16:24:02 +07:00
Marten Seemann
80534c0944
wait until the handshake is complete before updating the connection ID
2020-11-02 16:21:38 +07:00
Marten Seemann
676d43a5e9
remove incorrect log line about retirement of preferred address conn ID
2020-11-02 16:08:12 +07:00
Marten Seemann
656490c9b1
explicitly set the supported versions in the HTTP/3 server test
2020-11-02 12:47:40 +07:00
Marten Seemann
4372f46345
implement qlogging of the preferred address in the transport parameters
2020-11-02 12:39:48 +07:00
Marten Seemann
272229abf0
Merge pull request #2848 from lucas-clemente/http3-client-versions
...
only allow the HTTP/3 client to dial with a single QUIC version
2020-11-02 12:39:16 +07:00
Marten Seemann
898f484d0a
only allow the HTTP/3 client to dial with a single QUIC version
2020-11-02 11:29:42 +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
b034f1ac7c
Merge pull request #2828 from lucas-clemente/send-streams-blocked-on-max-streams
...
send STREAMS_BLOCKED frame when MAX_STREAMS frame allows too few streams
2020-10-30 18:58:42 +07:00
Marten Seemann
5c5e1024e7
send STREAMS_BLOCKED frame when MAX_STREAMS frame allows too few streams
2020-10-30 15:28:09 +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
b336504fdb
Merge pull request #2827 from lucas-clemente/fix-open-stream-sync-busy-looping
...
fix OpenStreamSync busy looping
2020-10-30 15:11:23 +07:00
Marten Seemann
5a52902937
Merge pull request #2845 from lucas-clemente/update-qpack
...
update qpack to v0.2.1
2020-10-30 15:11:03 +07:00
Marten Seemann
7d5335e8d8
Merge pull request #2846 from lucas-clemente/github-actions-setup-go
...
use the current version of setup-go on GitHub Actions
2020-10-30 15:10:41 +07:00