Commit Graph

5168 Commits

Author SHA1 Message Date
Marten Seemann
71f0702237 update golang.org/x/sys to allow building on openbsd/mips64 2021-01-01 11:43:19 +08:00
Marten Seemann
602212e983 Merge pull request #2968 from lucas-clemente/fix-setup-go-stable
fix YAML syntax error in setup-go step
2020-12-31 12:58:39 +08:00
Marten Seemann
cc619f118e fix YAML syntax error in setup-go step 2020-12-31 12:37:59 +08:00
Marten Seemann
e2df1d9d15 Merge pull request #2953 from lucas-clemente/go116
add support for Go 1.16
2020-12-30 12:21:19 +08:00
Marten Seemann
57e3f55279 add support for Go 1.16 2020-12-29 11:48:02 +07:00
Marten Seemann
b47fe87e51 Merge pull request #2952 from lucas-clemente/reset-h3-uni-stream-when-type-unknown
cancel reading on unidirectional streams when the stream type is unknown
2020-12-29 07:42:24 +07:00
Marten Seemann
052d0b2124 Merge pull request #2956 from lucas-clemente/remove-duplicate-scheme-check
remove duplicate check of the URL scheme in the HTTP/3 client
2020-12-29 07:42:03 +07:00
Marten Seemann
41970dfe8d Merge pull request #2955 from lucas-clemente/fail-fast-strategy
disable fail-fast for all GitHub Actions matrix builds
2020-12-29 07:41:46 +07:00
Marten Seemann
7e4ac36b2f remove duplicate check of the URL scheme in the HTTP/3 client
There's already a check like this performed in the http3.RoundTripper.
2020-12-25 13:15:53 +07:00
Marten Seemann
434f7b1b16 disable fail-fast for all GitHub Actions matrix builds 2020-12-25 12:07:40 +07:00
Marten Seemann
68e8c4d1dd Merge pull request #2954 from lucas-clemente/fix-flaky-zero-rtt-queue-test
increase queueing duration in 0-RTT queue test to reduce flakiness
2020-12-23 17:26:54 +07:00
Marten Seemann
dab2f70aa4 increase queueing duration in 0-RTT queue test to reduce flakiness 2020-12-23 16:50:17 +07:00
Marten Seemann
4ad144c50a Merge pull request #2951 from lucas-clemente/h3-datagram-negotiation
implement the HTTP/3 Datagram negotiation
2020-12-23 15:19:21 +07:00
Marten Seemann
b753005137 check that QUIC layer negotiated datagram support when handing SETTINGS 2020-12-23 15:06:04 +07:00
Marten Seemann
3cb07d8f00 add a http3.RoundTripper.EnableDatagram option 2020-12-23 15:06:04 +07:00
Marten Seemann
0b0cb7c06f add a http3.Server.EnableDatagram option 2020-12-23 15:06:04 +07:00
Marten Seemann
aaf1d381d3 implement parsing and writing of the H3_DATAGRAM setting 2020-12-23 15:06:04 +07:00
Marten Seemann
160c11bd34 cancel reading on unidirectional streams when the stream type is unknown
Otherwise the stream would remain open indefinitely.
2020-12-23 15:00:01 +07:00
Marten Seemann
f68dfd5c3b Merge pull request #2949 from lucas-clemente/http3-control-streams
implement HTTP/3 control stream handling
2020-12-23 14:58:51 +07:00
Marten Seemann
808671e2d4 accept the control stream and parse SETTINGS frame, for the H3 client 2020-12-23 14:49:41 +07:00
Marten Seemann
f92b0ec74a make the HTTP/3 client request tests more strict 2020-12-23 14:47:16 +07:00
Marten Seemann
04eebb7f6a reject push streams initiated by the client 2020-12-23 14:47:16 +07:00
Marten Seemann
bf54ffe0df accept the control stream and parse SETTINGS frame, for the H3 server 2020-12-23 14:47:14 +07:00
Marten Seemann
bcbdd438cb Merge pull request #2950 from lucas-clemente/fix-flaky-sent-packet-handler-test
fix flaky sentPacketHandler test
2020-12-22 16:49:22 +07:00
Marten Seemann
9f6d1f5578 Merge pull request #2942 from lucas-clemente/dont-retransmit-ack-only-pings
don't retransmit PING frames added to ACK-only packets
2020-12-22 16:49:02 +07:00
Marten Seemann
53c8e33323 Merge pull request #2944 from lucas-clemente/tp-max-streams-error
move the transport parameter stream limit check to the parser
2020-12-22 16:48:45 +07:00
Marten Seemann
fdc2b91e03 Merge pull request #2946 from lucas-clemente/remove-initial-version
remove unused initialVersion variable in session
2020-12-22 16:48:30 +07:00
Marten Seemann
79d14dbe9b Merge pull request #2945 from lucas-clemente/remove-unneeded-peer-params-check
remove unneeded check for the peer's transport parameters
2020-12-22 16:48:09 +07:00
Marten Seemann
f68691b316 Merge pull request #2947 from lucas-clemente/h3-message-error
add the H3_MESSAGE_ERROR
2020-12-22 16:47:47 +07:00
Marten Seemann
deaa1d761e Merge pull request #2948 from lucas-clemente/http3-simplify-tests
simplify Read and Write mock calls in http3 tests
2020-12-22 16:47:27 +07:00
Marten Seemann
31de6244e2 fix flaky sentPacketHandler test 2020-12-21 18:07:31 +07:00
Marten Seemann
4c6496bc0e simplify Read and Write mock calls in http3 tests 2020-12-21 14:41:22 +07:00
Marten Seemann
8a84201ce4 add the H3_MESSAGE_ERROR 2020-12-21 12:04:29 +07:00
Marten Seemann
c7d3aeea3d move the transport parameter stream limit check to the parser 2020-12-18 13:00:33 +07:00
Marten Seemann
6217ec55fd remove stray comment in the streams map 2020-12-18 12:34:04 +07:00
Marten Seemann
19ddefd1d9 remove unneeded check for the peer's transport parameters
We create a new flow controller when opening a new streams. This can only
happen after the session is returned, in which case we should have already
received the transport parameters.
2020-12-18 12:16:07 +07:00
Marten Seemann
ad7d90779a remove unused initialVersion variable in session 2020-12-18 12:00:17 +07:00
Marten Seemann
d8858d767d don't retransmit PING frames added to ACK-only packets
Every 20 non-ack-eliciting packets, we add a PING frame to make that
packet ack-eliciting. That way, we regularly receive acknowledgements,
even if we're not actually sending any data. This allows us to clean up
our sent packet history.
There's no need to retransmit this PING frame though. We'll just send a
new one if one of them is lost, as soon as we've sent another 20
non-ack-eliciting packets.
2020-12-17 11:36:02 +07:00
Marten Seemann
9693a46d31 Merge pull request #2162 from lucas-clemente/datagram
implement the datagram draft
2020-12-17 11:22:40 +07:00
Marten Seemann
c20a9247e1 Merge pull request #2937 from lucas-clemente/fix-bytes-in-flight-tracing-after-ack
fix logging of bytes_in_flight when receiving an ACK
2020-12-16 10:21:57 +07:00
Marten Seemann
25ffbbe4d8 Merge pull request #2939 from lucas-clemente/trace-dropped-packets-due-to-chan-overflow
trace when a packet is dropped because the receivedPackets chan is full
2020-12-16 10:21:28 +07:00
Marten Seemann
7c2e938684 trace when a packet is dropped because the receivedPackets chan is full 2020-12-15 15:20:13 +07:00
Marten Seemann
d3abf0ec3f fix logging of bytes_in_flight when receiving an ACK
The tracing call needs to be issued after subtracting acknowledged and
lost packets from the bytes_in_flight.
2020-12-15 12:04:12 +07:00
Marten Seemann
486738981f Merge pull request #2905 from lucas-clemente/improve-packet-number-generator
various improvements to the packet number generator
2020-12-15 10:15:31 +07:00
Marten Seemann
4c0f0c47eb Merge pull request #2930 from lucas-clemente/handshake-idle-timeout
introduce a quic.Config.HandshakeIdleTimeout, remove HandshakeTimeout
2020-12-15 08:35:44 +07:00
Marten Seemann
be476d90e0 Merge pull request #2936 from lucas-clemente/initial-conn-ids
allow up to 20 byte for the initial connection IDs
2020-12-14 23:39:51 +07:00
Marten Seemann
a769e8221b Merge pull request #2932 from lucas-clemente/undecryptable-packets-allocation
reduce memory footprint of undecryptable packet handling
2020-12-14 23:36:03 +07:00
Marten Seemann
4f84c1b85a Merge pull request #2934 from lucas-clemente/use-buffer-for-retries
use a buffer from the pool for composing Retry packets
2020-12-14 23:35:29 +07:00
Marten Seemann
f410eadb2c Merge pull request #2935 from lucas-clemente/release-buffer-on-connection-close
release the packet buffer after sending a CONNECTION_CLOSE in the server
2020-12-14 23:31:46 +07:00
Marten Seemann
019850efd6 use a buffer from the pool for composing Retry packets 2020-12-14 11:55:42 +07:00