Commit Graph

87 Commits

Author SHA1 Message Date
Marten Seemann
c0611d2f56 use simnet in CONNECTION_CLOSE retransmission test (#5395)
* use simnet in CONNECTION_CLOSE retransmission test

* fix race
2025-10-20 08:44:09 +02:00
Marten Seemann
5e5100b40c http3: add the qlog event schema to trace header (#5383) 2025-10-15 06:02:05 +02:00
Marten Seemann
c26e86c547 qlogwriter: add support for event_schemas in the trace header (#5361) 2025-10-09 06:07:23 +02:00
Marten Seemann
c2131eb595 qlog: split serializiation and event definitions, remove logging abstraction (#5356)
* qlog: implement a Trace and a Writer struct

* qlog: rename Trace to FileSeq

* split qlog trace writer and QUIC qlog events into separate packages

* use the new qlog.Recorder instead of the logging.ConnectionTracer
2025-10-08 05:53:02 +02:00
Marten Seemann
2ac3b16df4 improve connection timer logic (#5339)
* simplify timer resets

As of Go 1.23, timer resets work as expected, and there’s no need to
read a (potentially) stale value from the timer channel.

* don't save the last time

* track if blocked

* remove unblock after sendingScheduled

* fix unblock logic when sending

* don't use fallthrough

* track the blocking mode

* remove stale comment
2025-09-24 10:43:01 +02:00
Marten Seemann
adc13be540 implement a memory-optimized time.Time replacement (#5334)
* implement a memory-optimized time.Time replacement

* monotime: properly handle systems with bad timer resolution (Windows)

* monotime: simplify Since
2025-09-14 08:12:10 +02:00
Marten Seemann
d35b5ac187 use ed25519 instead of RSA in tests and examples (#5050)
Also adds a golangci-lint depguard rules that forbids
importing crypto/rsa.
2025-04-20 05:55:08 +02:00
Peter Wu
384a4b8d50 proxy: fix test timeout failures during cleanup (#5010)
Several proxy tests timed out because it got stuck in the packet read
loop after all tests have run. Avoid this by running the `conn.Close()`
Cleanup call from `newUPDConnLocalhost` before the timeout handler.

Update CI to run these tests.

Fixes: 3e87ea3f50 ("proxy: add function to simulate NAT rebinding (#4922)")
Relates to: #5009
2025-03-29 13:04:44 +08: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
f20b823154 proxy: optimize packet sorting logic (#4923) 2025-01-26 05:27:12 +01:00
Marten Seemann
3e87ea3f50 proxy: add function to simulate NAT rebinding (#4922) 2025-01-26 05:03:08 +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
f5145eb627 proxy: remove QuicProxy.LocalPort method (#4920) 2025-01-25 04:18:22 +01:00
Marten Seemann
aef34d59a9 proxy: migrate tests away from Ginkgo (#4680) 2024-09-21 05:15:13 -07:00
Marten Seemann
5f8d146836 wire: optimize parsing of long header packets (#4589) 2024-07-21 14:22:32 -07:00
Marten Seemann
30e01b9524 use the transport tracer in integration tests 2024-03-09 19:32:15 +09:30
Marten Seemann
96ab48eb7d fix serialization of connection ID in filenames of qlog files (#4170) 2023-11-16 22:06:42 -08: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
Egon Elbre
b65ed61fea integrationtests: fix proxy test on Windows (#4023) 2023-08-13 01:43:28 -07:00
Glonee
c96fbd2e4a http3: correctly use the quic.Transport (#3869)
* use quic.Transport in http3

* add intergrationtests to dial server with different server names

* update test
2023-05-31 23:31:20 -07:00
Marten Seemann
f5516715eb quicproxy: increase UDP send and receive buffer sizes (#3813) 2023-05-28 17:08:17 +03:00
Marten Seemann
07ad2cbee2 remove Tracer from Config, put ConnectionTracer constructor there 2023-05-02 15:56:49 +02:00
Marten Seemann
0dbe595d9f move the version negotiation tests to a separate package 2023-05-01 13:42:30 +02:00
Marten Seemann
1f57d4e789 protocol: remove VersionTLS, used during the gQUIC -> TLS 1.3 transition (#3764) 2023-04-19 07:24:34 -07: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
c24fbb094c refactor header writing to append to a byte slice (#3646)
This avoids having to allocate a bytes.Buffer.
2023-01-17 01:56:06 -08:00
Marten Seemann
86edf7fd4b remove the LongHeader field from the wire.Header 2023-01-17 21:53:39 +13:00
Marten Seemann
870fbe7ab0 migrate to Ginkgo v2 2022-10-11 16:38:44 +04:00
Marten Seemann
1aced95d41 use an array instead of a byte slice for Connection IDs 2022-08-29 11:30:31 +03:00
Marten Seemann
ea9de26ed5 drop support for Go 1.16 and 1.17 (#3482) 2022-08-10 03:42:14 -07:00
Marten Seemann
59ea0daea1 run gofmt to add the new go:build tags 2021-09-14 18:37:41 +02:00
Marten Seemann
7c74d1eb47 add support for Go 1.17 Beta 1 2021-06-15 12:29:48 -07:00
Marten Seemann
82ac6dcf6d rename MaxReceivePacketSize to MaxPacketBufferSize
We use the same buffer size for sending and receiving packets.
2021-03-03 12:00:14 +08:00
Marten Seemann
8752576f26 run gofumpt, enable the gofumpt linter 2020-10-26 09:33:35 +07:00
Marten Seemann
0baf16ea4e rewrite the proxy to avoid packet reordering 2020-06-20 15:46:06 +07:00
Marten Seemann
a9e5686cdf fix flaky proxy test 2020-05-04 12:51:02 +07:00
Marten Seemann
f066e2fc5f remove the testlog package 2019-11-30 19:58:30 +07:00
Marten Seemann
07dcbc8496 remove the testserver package 2019-11-25 12:54:58 +07:00
Marten Seemann
6b22f36d82 add the stylecheck linter 2019-09-17 13:50:19 +07:00
Marten Seemann
5479837a01 stop delay timers in the proxy when it is closed 2019-07-02 12:34:43 +07: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
0f3b0cfcc4 fix race condition in proxy tests 2019-06-29 11:11:45 +07:00
Marten Seemann
4f6d0e651a implement HTTP/3 2019-04-11 09:06:10 +09:00
Marten Seemann
e14a4f9be7 add synchronization for calls to the buffer used for logging 2019-04-01 11:40:32 +09:00
Marten Seemann
a0bf7c7ed0 log to memory in integration tests 2019-04-01 01:54:24 +09:00
Marten Seemann
9bffce264f don't run the version negotiation tests with race detector 2019-02-08 13:56:49 +08:00
Marten Seemann
05be874b11 cancel reading from the response stream when the response body is closed 2019-01-23 15:45:22 +07:00
Marten Seemann
2367ab35bb remove unneeded version parameter from proxy constructor 2019-01-05 12:36:52 +07:00
Marten Seemann
70ce6a5814 parse the whole Long Header, if the version is known 2018-11-26 15:57:54 +07:00