Commit Graph

32 Commits

Author SHA1 Message Date
Marten Seemann
06aad3b4ba fix flaky TestTransportReplaceWithClosed (#5181) 2025-05-31 07:52:56 +02:00
Marten Seemann
2082d2c6b9 move connection tracking into the Transport (#5113) 2025-05-05 05:05:17 +02:00
Marten Seemann
b3f55bb7b7 use assert.AnError consistently in tests (#5066)
No functional change expected.
2025-04-21 03:52:08 +02:00
Marten Seemann
24acc54ef1 add support for connection migration (#4960) 2025-03-12 06:11:11 +01:00
Marten Seemann
751ca8dfb6 fix typo in UDP connection helper function in tests (#4970) 2025-02-24 09:39:29 +01:00
Marten Seemann
eb70424fba fix race condition on concurrent use of Transport.Dial and Close (#4904) 2025-01-21 17:52:16 +08:00
Marten Seemann
07bbe8c383 add ErrTransportClosed and use it for Listen/Dial after transport close (#4883)
* add ErrTransportClosed and use it for Listen/Dial after transport close

* include the original error in the ErrTransportClosed error string
2025-01-21 13:54:40 +08:00
Marten Seemann
62a94758e6 move dialing logic from the client into the Transport (#4859) 2025-01-14 16:40:20 +08:00
Marten Seemann
62947d97f5 simplify generation of stateless reset tokens (#4858) 2025-01-11 17:52:59 +08:00
Marten Seemann
9950b4c687 remove validation enforcing one Transport per net.PacketConn (#4851)
It is invalid to use a net.PacketConn in multiple Transports. However,
the validation logic is causing pain when using wrapped net.PacketConns.
It was introduce to guard against incorrect uses of the API when the
Transport was introduced, but this is probably less relevant now than it
was back then.
2025-01-10 09:32:52 +08:00
Marten Seemann
f41a6a644d migrate the connection tests away from Ginkgo (#4823) 2025-01-06 14:48:11 +08:00
Marten Seemann
f337891fc8 trace packets that the transport doesn't send a stateless reset for (#4826) 2024-12-31 13:36:16 +08:00
Marten Seemann
c92207c72b trace dropping of packets by the Transport when no server is set (#4789) 2024-12-23 18:54:46 +08:00
Marten Seemann
b493c5d827 migrate the transport tests away from Ginkgo (#4783)
* migrate the transport tests away from Ginkgo

* simplify mock net.PacketConn implementation
2024-12-23 14:47:44 +08:00
Marten Seemann
363533dc7a remove the Token field from the StatelessResetError (#4740)
There's nothing the application could possibly do with this value.
2024-12-02 13:57:46 +08:00
Sukun
d6269b71af fix deadlock when concurrently closing server and transport (#4332)
* server: fix deadlock when closing concurrently with transport

* add test for checking no deadlock
2024-03-03 03:00:28 -08:00
Marten Seemann
4790797b58 only check for stateless resets if packet doesn't belong to a connection (#4322)
This technically violates the stateless reset handling logic described
in RFC 9000 section 10.3.1 (see comment), but it saves one map lookup in
the hot path.
2024-02-09 00:15:58 -08:00
Marten Seemann
07ec3245bd logging: add a Close function to the Tracer (#4298)
* logging: add a Close function to the Tracer

* close the Tracer when the Transport is closed
2024-02-02 21:12:15 -08:00
Marten Seemann
dda63b90eb don't close established connections on Listener.Close, when using a Transport (#4072)
* don't close established connections on Listener.Close

* only close once
2023-10-26 23:10:13 -07:00
Marten Seemann
a263164d9f use new gomock feature to generate type-safe methods in mocks (#4057) 2023-10-20 22:55:33 -07:00
Marten Seemann
9b82196578 make the logging.Tracer and logging.ConnectionTracer a struct (#4082) 2023-09-16 04:58:51 -07:00
Marten Seemann
2797f85fc0 switch from unmaintained golang/mock to go.uber.org/mock (#4050) 2023-08-28 02:23:55 -07:00
Marten Seemann
d22854641a remove the port from the hostname used for tls.Config.ServerName (#4046) 2023-08-24 17:53:02 -07:00
Marten Seemann
fe3c4f271d add a method to retrieve non-QUIC packets from the Transport (#3992) 2023-08-19 01:19:17 -07:00
kelmenhorst
0c54d416ee transport: don't add connection to multiplexer if init fails (#3931)
* Remove conn from multiplexer when (*Transport).init fails

* Transport: AddConn to multiplexer directly before start listening

* Update transport_test.go

---------

Co-authored-by: Marten Seemann <martenseemann@gmail.com>
2023-06-29 10:35:16 -07:00
kelmenhorst
8352e5dc32 check for uninitialized fields when closing the Transport (#3908)
* close Transport: check for possibly uninitialized fields

* close Transport: close Conn, as conn might not be initialized

* close Transport: add test case
2023-06-21 02:14:57 -07:00
Marten Seemann
072a602cc1 pass around receivedPacket as struct instead of as pointer (#3823) 2023-06-03 00:08:58 -07:00
Marten Seemann
da198b710b transport: fix flaky stateless reset test (#3810) 2023-05-08 01:56:59 -07:00
Marten Seemann
07ad2cbee2 remove Tracer from Config, put ConnectionTracer constructor there 2023-05-02 15:56:49 +02:00
Marten Seemann
ba942715db remove ConnectionIDLength and ConnectionIDGenerator from the Config 2023-05-02 15:56:49 +02:00
Marten Seemann
b79b532b04 remove StatelessResetKey from the Config, it's now on the Transport 2023-05-02 15:56:49 +02:00
Marten Seemann
8189e75be6 implement the Transport 2023-05-02 15:56:48 +02:00