Commit Graph

55 Commits

Author SHA1 Message Date
Marten Seemann
5f3d617dec convert Connection interface to Conn struct (#5195) 2025-06-09 11:51:46 +02:00
Marten Seemann
4c6aca6b43 remove stray assertion that handshakes are running from tests (#5123)
The RunHandshake method this function was basing its assertion on was
removed a long time ago.
2025-05-06 09:13:38 +07:00
Marten Seemann
267cca773b switch from math/rand to math/rand/v2 (#5045)
* switch from math/rand to math/rand/v2

* switch away from golang.org/x/exp/rand
2025-04-19 09:01:22 +02:00
Marten Seemann
751ca8dfb6 fix typo in UDP connection helper function in tests (#4970) 2025-02-24 09:39:29 +01:00
Marten Seemann
6033030017 proxy: add source and destination address to delay and drop callbacks (#4964) 2025-02-22 12:21:40 +01:00
Marten Seemann
79bae396b4 proxy: rename to Proxy, refactor initialization (#4921)
* proxy: rename to Proxy, refactor initialization

* improve documentation
2025-01-25 11:13:33 +01:00
Marten Seemann
3886be4e95 introduce a test helper function to create a UDP socket on localhost (#4756) 2024-12-17 23:30:00 +08:00
Marten Seemann
8cb88ee145 fix timeout integration tests on Windows (#4758)
The Go timer resolution on Windows leaves a lot to be desired. By
bumping the timeout duration the test will take longer, but at least it
won't be flaky.
2024-12-17 21:22:42 +08:00
Marten Seemann
691086db7f migrate integration tests away from Ginkgo (#4736)
* use require in benchmark tests

* translate the QLOGDIR test

* translate handshake tests

* translate the handshake RTT tests

* translate the early data test

* translate the MTU tests

* translate the key update test

* translate the stateless reset tests

* translate the packetization test

* translate the close test

* translate the resumption test

* translate the tracer test

* translate the connection ID length test

* translate the RTT tests

* translate the multiplexing tests

* translate the drop tests

* translate the handshake drop tests

* translate the 0-RTT tests

* translate the hotswap test

* translate the stream test

* translate the unidirectional stream test

* translate the timeout tests

* translate the MITM test

* rewrite the datagram tests

* translate the cancellation tests

* translate the deadline tests

* translate the test helpers
2024-12-16 23:43:59 +08:00
Marten Seemann
8451b0afd7 utils: remove scarcely used time helper functions (#4593) 2024-07-23 14:16:12 -07: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
30f9c0139f use typed atomics in integration tests (#4120)
* use typed atomic in integration tests

* use an atomic.Bool in hotswap test
2023-10-24 21:46:29 -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
e1fcac3e46 set the handshake timeout to twice the handshake idle timeout (#4063) 2023-09-09 06:12:37 -07:00
Benedikt Spies
f57f876446 respect minimum idle timeout of 3 PTOs (#3909) 2023-06-20 01:47:29 -07:00
Marten Seemann
b425465bf9 fix flaky timeout integration test (#3818) 2023-05-12 00:12:40 -07:00
Marten Seemann
07ad2cbee2 remove Tracer from Config, put ConnectionTracer constructor there 2023-05-02 15:56:49 +02:00
Marten Seemann
8189e75be6 implement the Transport 2023-05-02 15:56:48 +02:00
Marten Seemann
1b64b13750 make Listener a struct, not an interface 2023-05-01 14:41:16 +02:00
Marten Seemann
aee7706d5d clean up dial functions
* add a context to all Dial functions
* remove the explicit Dial{*}Context functions
2023-05-01 13:59:54 +02:00
Marten Seemann
d683b841c4 remove the host parameter from all dial functions 2023-05-01 13:59:54 +02:00
Marten Seemann
dee98638a4 use atomic.Bool from the standard library 2023-02-04 17:44:57 +13:00
Marten Seemann
58cedf7a4f rename module, adjust import paths to quic-go/quic-go (#3680) 2023-01-21 19:53:57 -08:00
Marten Seemann
24be84cd00 introduce separate tracing calls for sent long and short header packets 2023-01-17 21:53:37 +13:00
Marten Seemann
870fbe7ab0 migrate to Ginkgo v2 2022-10-11 16:38:44 +04:00
Marten Seemann
ed15a94703 split the tracing function for received short and long header packets 2022-08-29 15:32:27 +03:00
Marten Seemann
7fde609eef make sure RunHandshake has returned before closing, improve MITM tests 2022-08-13 17:42:45 +03: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
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
68e468a3bc drop support for Go 1.15 2021-08-05 14:18:56 +02:00
Marten Seemann
34322f2214 export the IdleTimeoutError and the HandshakeTimeoutError 2021-05-01 09:39:52 +07:00
Marten Seemann
42b61729bd expose the TransportError and the ApplicationError 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
f71997597c use a tracer to determine the idle timeout period in the integration test 2021-03-20 12:17:59 +08:00
Marten Seemann
ac87292e87 start path MTU discovery when the handshake completes 2021-03-03 12:00:51 +08:00
Marten Seemann
11c5c548b6 improve timeout measurement in the timeout test
When not sending any packets, the idle timeout starts when receiving the
HANDSHAKE_DONE frame (on the client side), not when the handshake completes.
2021-02-18 09:59:04 +08: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
1728a6c90c add an integration test for datagram transfers 2020-12-09 15:47:24 +07:00
Marten Seemann
595f6f814a introduce a quic.Config.HandshakeIdleTimeout, remove HandshakeTimeout 2020-12-08 16:12:39 +07:00
Yingrong Zhao
36add0e7a0 client: Add DialEarlyContext and DialAddrEarlyContext API 2020-10-07 22:20:28 -04:00
Marten Seemann
980c840359 test that both endpoints time out in the timeout integration test 2020-09-05 18:10:44 +07:00
Marten Seemann
260356140f remove ACK decimation
The benefits of this are unclear when using Reno / Cubic.
2020-07-28 10:03:05 +07:00
Marten Seemann
ee24d3899e simplify the Tracer interface by combining the TracerFor... methods 2020-07-11 13:22:52 +07:00
Marten Seemann
1a0b642ac1 add integration tests using faulty packet conns 2020-07-10 18:27:41 +07:00
Marten Seemann
a5b967a309 add a command line option to export qlogs from the integration tests 2020-03-26 20:37:08 +07:00
Luke Tucker
6407f5bf68 Fix keepalive ping (#2316)
The firstAckElicitingPacketAfterIdleSendTime condition was inverted
in a recent PR, maybe just a typo.  This was causing only one ping
to be sent during periods of no activity.  The ack from the first
keepalive ping causes firstAckElicitingPacketAfterIdleSentTime
to be set to zero.  If there is no further activity, it will remain
zero and prevent further keepalive pings.
2020-01-27 11:13:54 +07:00
Marten Seemann
27549c5665 use the minimum of the two peers' max_idle_timeouts 2019-12-11 14:04:33 +04:00
Marten Seemann
7827cd61bc pass the raw packet to the Drop- and Delay callbacks of the proxy 2019-07-01 14:46:58 +07:00
Marten Seemann
5550ba2c3b add a context to Session.Accept{Uni}Stream 2019-06-22 19:37:11 +08:00