Commit Graph

436 Commits

Author SHA1 Message Date
Marten Seemann
43bde14cf7 implement generic Min and Max functions 2022-08-10 14:59:05 +02:00
Marten Seemann
ea9de26ed5 drop support for Go 1.16 and 1.17 (#3482) 2022-08-10 03:42:14 -07:00
Marten Seemann
f29dd273b4 update for Go 1.19beta1 (#3460) 2022-06-28 01:12:44 -07:00
Nuno Diegues
4c96cf75bf make the keep alive interval configurable (#3444)
* Make keep alive configurable

* Fix unit tests
2022-06-09 08:31:37 -07:00
Marten Seemann
3eed9d1104 don't close the stream if it was hijacked 2022-06-09 10:51:23 +02:00
Marten Seemann
6fa7494c2f add a http3.HTTPStreamer, allowing users to take over the HTTP/3 stream 2022-06-09 10:51:23 +02:00
Marten Seemann
e27fa1c9cf update qtls to include the recent session ticket changes to crypto/tls (#3443)
This includes the changes released in Go 1.18.3 and Go 1.17.11.
2022-06-09 09:24:04 +02:00
Marten Seemann
53be3ee500 don't send CONNECTION_CLOSE if error occurred before sending anything 2022-05-20 12:27:00 +02:00
Ivan Trubach
0ec8ee3cff do not embed http.Server in http3.Server (#3397)
This change removes the embedded http.Server struct from http3.Server.
It slightly changes some error behavior, in particular, it mandates
TLSConfig for methods that create QUIC listeners.

Before this change, only Addr, TLSConfig, Handler and MaxHeaderBytes
options were used from the http.Server. These are now defined directly
in http3.Server with an improved documentation.
2022-05-20 02:53:23 -07:00
Chao Fei
60bbe92194 remove error return value from ComposeVersionNegotiation (#3410) 2022-05-12 08:03:39 -07:00
Marten Seemann
a6a9b2494b reduce flakiness of deadline integration tests (#3383) 2022-04-25 04:00:33 -07:00
Marten Seemann
6aaa9a817c rename the EarlySession to EarlyConnection 2022-03-27 11:27:25 +01:00
Marten Seemann
fda9f72161 replace usages of session in variable names 2022-03-27 11:27:25 +01:00
Marten Seemann
e71c236232 rename the Session to Connection 2022-03-27 11:27:23 +01:00
Marten Seemann
2661c2807d update qtls packages (#3351) 2022-03-21 12:04:26 -07:00
Artem Mikheev
b7e93b54c9 Implement http3.Server.ServeListener (#3349)
* feat(http3): implement serving from quic.Listener

ServeListener method added to http3.Server allowing serving from an existing listener
ConfigureTLSConfig function added to http3 which should be used to create listeners meant for serving http3.

* docs(http3): add note about using ConfigureTLSConfig to ServeListener

* fix(http3): stop serving non-created listeners after Server.Close

* refactor(http3): return ErrServerClosed once server closes instead of context.Canceled

* feat(http3): close listeners from ServeListener as well

* fix(http3): fix logger not being setup during ServeListener

* test(http3): add unit tests for serving listeners

* test(http3): add tests for ConfigureTLSConfig

* test(http3): added server hotswapping integration test

* fix: race condition in listener tests
2022-03-21 02:20:29 -07:00
Marten Seemann
366097106c use Go 1.18 on CI 2022-03-16 11:16:44 +04:00
Marten Seemann
2c8b939d4c add an integration tests that cancels streams frequently 2021-10-16 19:24:28 +02:00
Marten Seemann
59ea0daea1 run gofmt to add the new go:build tags 2021-09-14 18:37:41 +02:00
Marten Seemann
8ecbb05d44 Merge pull request #3247 from lucas-clemente/drop-go-115
drop support for Go 1.15
2021-08-05 19:50:30 +02:00
Marten Seemann
be68f7fd65 Merge pull request #3241 from lucas-clemente/fix-stream-cancel-read-race
fix race when stream.Read and CancelRead are called concurrently
2021-08-05 16:20:32 +02:00
Marten Seemann
68e468a3bc drop support for Go 1.15 2021-08-05 14:18:56 +02:00
Marten Seemann
19cebde7c7 also count coalesced 0-RTT packets in the integration tests 2021-08-05 12:54:43 +02:00
Marten Seemann
fbc30cd942 fix race when stream.Read and CancelRead are called concurrently 2021-07-29 13:41:40 +02:00
Marten Seemann
9794b6da4c fix flaky 0-RTT integration test 2021-07-06 11:29:47 -07:00
Marten Seemann
dbb517858e fix incorrect usage of errors.Is
errors.Is is supposed to used for equality of errors, not for type
assertions. That's what errors.As is there for.
2021-06-28 15:29:52 -07:00
Marten Seemann
7c74d1eb47 add support for Go 1.17 Beta 1 2021-06-15 12:29:48 -07:00
Marten Seemann
a203702c28 add a CI test that go mod vendor works 2021-06-13 23:26:24 -07:00
Marten Seemann
d97f03bc04 Merge pull request #3166 from lucas-clemente/close-reason-logging
use the new error types to log the reason why a connection is closed
2021-05-04 18:34:34 +07:00
Marten Seemann
1613809ba2 use the new error types to log the reason why a connection is closed 2021-05-03 14:00:41 +07:00
Marten Seemann
e8b09bc290 fix race condition in deadline integration test 2021-05-03 13:24:06 +07:00
Marten Seemann
34322f2214 export the IdleTimeoutError and the HandshakeTimeoutError 2021-05-01 09:39:52 +07:00
Marten Seemann
90727cb41a introduce a quic.StreamError type and use it for stream cancelations 2021-05-01 09:39:52 +07:00
Marten Seemann
93cfef57ca expose a StatelessResetError 2021-05-01 09:39:51 +07:00
Marten Seemann
1ce572228b expose a VersionNegoationError 2021-05-01 09:39:24 +07:00
Marten Seemann
42b61729bd expose the TransportError and the ApplicationError 2021-05-01 09:38:49 +07:00
Marten Seemann
f5238bf7b1 move the ApplicationErrorCdoe to the qerr package 2021-05-01 09:38:49 +07:00
Marten Seemann
592fb9cad9 introduce a dedicated qerr.TransportError and qerr.ApplicationError 2021-05-01 09:38:48 +07:00
Marten Seemann
0413afd615 Merge pull request #3153 from lucas-clemente/trace-version-selection
trace and qlog version selection / negotiation
2021-04-28 18:13:18 +07:00
Marten Seemann
e7c4e756ad trace and qlog version selection / negotiation 2021-04-19 11:38:10 +07:00
Marten Seemann
878e0b261a pass a context to logging.Tracer.NewConnectionTracer
This context has the same value attached to it as the context returned
by Session.Context().
In the case of a dialed connection, this context is derived from the
context used for dialing.
2021-04-14 16:59:36 +07:00
Marten Seemann
e3f36af2e2 Merge pull request #3109 from lucas-clemente/version-negotiation-logging
don't pass the QUIC version to the StartedConnection event
2021-04-02 19:29:55 +07:00
Marten Seemann
f8b847f577 Merge pull request #3104 from lucas-clemente/clean-up-testutils
clean up the testutils
2021-04-02 17:35:58 +07:00
Marten Seemann
c30a45ef6f don't pass the QUIC version to the StartedConnection event
The version might change in response to a Version Negotiation packet.
2021-04-02 17:33:49 +07:00
Marten Seemann
ea14ce5724 Merge pull request #3134 from lucas-clemente/trace-acked-packets
make it possible to trace acknowledged packets
2021-04-02 17:33:19 +07:00
Marten Seemann
905a66cc84 use a tracer to make the packetization test more useful 2021-04-02 17:04:01 +07:00
Marten Seemann
875692ea10 add a function to trace acknowledged packets 2021-04-02 11:37:07 +07:00
Marten Seemann
f71997597c use a tracer to determine the idle timeout period in the integration test 2021-03-20 12:17:59 +08:00
Marten Seemann
45a432f100 save sent and received packets in the tracer used in integration tests 2021-03-20 11:57:55 +08:00
Marten Seemann
7d6be20fdc remove unneeded testutils.ComposeAckFrame helper function 2021-03-20 09:55:26 +08:00