Commit Graph

6233 Commits

Author SHA1 Message Date
Marten Seemann
d234d62d52 qtls: only attempt 0-RTT resumption for 0-RTT enabled session tickets (#4183) 2023-12-09 06:17:47 -08:00
Charles Xu
38eafe4ad8 README: add gost project (#4154)
* chore: add project

* fix name

* revert unrelated whitespace fix

---------

Co-authored-by: Marten Seemann <martenseemann@gmail.com>
2023-12-06 19:18:33 -08:00
Marten Seemann
9b40c50a73 http3: use the AdditionalSettings for requests (#4156) 2023-12-06 06:22:23 -08:00
Benedikt Spies
45922f76d6 reduce calls to time.Now() calls in connection (#4191) 2023-12-06 06:00:58 -08:00
Marten Seemann
87ef8ec48d fuzzing: add transport parameter validation logic (#4175) 2023-12-03 05:53:36 -08:00
chungthuang
7b9d21fbe6 send large max_datagram_frame size, introduce a DatagramTooLargeError error (#4143)
The size can be overwritten to a lower value for testing.
2023-12-02 06:27:15 -08:00
Marten Seemann
2d7ea37672 wire: reject NEW_CONNECTION_ID frames with zero-length conneciton IDs (#4180) 2023-11-23 02:41:12 -08:00
Marten Seemann
771d136fa9 interop: update Go version to 1.21.4 (#4179) 2023-11-22 20:30:26 -08:00
Marten Seemann
3bf2e19d0d logging: pass the packet number to ConnectionTracer.DroppedPacket (#4171)
In most cases the packet number is not known when a packet is dropped,
but it's useful to log the packet number when dropping a duplicate
packet.
2023-11-17 04:11:16 -08:00
Marten Seemann
96ab48eb7d fix serialization of connection ID in filenames of qlog files (#4170) 2023-11-16 22:06:42 -08:00
Marten Seemann
427f53328b fix flaky server test (#4167) 2023-11-14 02:00:42 -08:00
Anders Pitman
740119b144 README: fix typo (#4166) 2023-11-14 01:09:47 -08:00
Marten Seemann
9414ea4910 ackhandler: immediately acknowledge ECN-CE marked packets (#4147)
* ackhandler: immediately acknowledge ECN-CE marked packets

* shorter debug statements
2023-11-03 08:28:16 -07:00
Marten Seemann
d4ab27de1f don't set the TLS version in the transport (#4135)
This is already done in the crypto setup.
2023-10-31 22:27:13 -07:00
Marten Seemann
f23da7da47 congestion: don't use floating point math when calculating pacing times (#4148) 2023-10-31 02:21:42 -07:00
Marten Seemann
a3603549ee document what happens to established connections on Listener.Close (#4138) v0.40.0 2023-10-27 23:40:50 -07:00
Marten Seemann
6eb0caca1a fix race condition in multiplex integration test (#4136) 2023-10-27 22:08:49 -07:00
Marten Seemann
5311f8178c README: link to webtransport-go repo (#4117) 2023-10-27 02:21:26 -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
ef800d6f71 handshake: set MinVersion on the Config returned by GetConfigForClient (#4134) 2023-10-26 22:35:07 -07:00
Marten Seemann
d309060cde handshake: clone the tls.Config returned by GetConfigForClient (#4133)
We modify this tls.Config, so we should clone it first. Otherwise, this could
cause conflicts with how the application is using that config.
2023-10-26 22:22:20 -07:00
Marten Seemann
e2622bfad8 reject ClientHellos that offer TLS versions older than 1.3 (for Go 1.20) (#4130) 2023-10-25 09:49:53 -07:00
Marten Seemann
746290b78a never allow 0-RTT when using Dial, even if the session ticket allows it (#4125)
When resuming a TLS session using Dial (and not DialEarly), 0-RTT should
be disabled at the TLS layer, even if the session ticket allows for
0-RTT resumption.

This bug is not critical, since Dial doesn't return an EarlyConnection,
so the client wouldn't be able to actually send 0-RTT data in practice.
2023-10-25 08:20:23 -07:00
Marten Seemann
1bcec70978 ci: run linter on all supported Go versions (#4126) 2023-10-24 22:03:41 -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
6239effc7a fix IPv4 ECN control message length on Linux (#4127) 2023-10-24 21:18:43 -07:00
Marten Seemann
1c631cf9cb rename Connection.{Send,Receive}Message to {Send,Receive}Datagram (#4116)
This is more consistent with both the RFC and the rest of the API. For
example, the option in the Config is already name EnableDatagrams, and
the property in the ConnectionState is named SupportsDatagrams.
2023-10-24 21:18:09 -07:00
Marten Seemann
7884f87f82 ci: use bash on all platforms (#4122) 2023-10-22 23:36:45 -07:00
Marten Seemann
4c357c8f76 ci: create separate artifact archives per workflow run (#4121) 2023-10-22 22:53:10 -07:00
Marten Seemann
5314d90b9f fix logging of connection IDs in tracer test (#4118) 2023-10-22 22:46:27 -07:00
Glonee
36f7fe7d07 http3: discard body from responses to HEAD requests (#4115)
* http3: HEAD method should not have a body

* add tests

* Update http3/server.go

Co-authored-by: Marten Seemann <martenseemann@gmail.com>

* ruduce the size of responseWriter

---------

Co-authored-by: Marten Seemann <martenseemann@gmail.com>
2023-10-22 19:31:24 -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
b344940f06 catch EPERM sendmsg errors for the very first packet on Linux (#4111) 2023-10-17 01:23:33 -07:00
Marten Seemann
262cf0a592 fix IPv4 ECN control message length on FreeBSD (#4110) 2023-10-16 22:50:40 -07:00
Marten Seemann
f49944b737 README: add qlog to list of supported RFCs, add an example (#4102) 2023-10-13 00:05:47 -07:00
Marten Seemann
49e588a6a9 don't spawn a new Go routine to send a Retry packet (#4092) 2023-09-25 04:21:51 -07:00
Marten Seemann
ae2ef95fa3 don't spawn a new Go routine to send a CONNECTION_REFUSED packet (#4091) 2023-09-25 09:31:27 +00:00
Marten Seemann
348042ee4c simplify sending of INVALID_TOKEN errors (#4090) 2023-09-25 02:14:07 -07:00
Marten Seemann
9a397abc17 update gomock to v0.3.0 (#4087) v0.39.0 2023-09-24 04:38:28 -07:00
Toby
4bdff39ff0 README: add Hysteria (#4085)
* chore: add my project

* fix order
2023-09-24 04:01:03 -07:00
Marten Seemann
4a046185b7 ackhandler: fix ECN mangling detection when packets are lost (#4089)
Some of the 10 testing packets are might be lost, while others might be
CE-marked. We need to detect mangling if all testing packets are either
lost are CE-marked.
2023-09-17 22:08:33 -07:00
Marten Seemann
c12f425803 ackhandler: don't fail ECN validation if less than 10 testing packets are lost (#4088)
* ackhandler: don't fail ECN validation less than 10 testing packets lost

* ackhandler: simplify checks for mangling and loss of all testing packets
2023-09-17 23:00:05 +04:00
Marten Seemann
9010cfd2bb remove unused unknownPacketHandler interface (#4093) 2023-09-17 05:20:13 -07:00
Marten Seemann
22fb59ee6f create FUNDING.yml 2023-09-17 05:18:43 -07:00
Marten Seemann
55eebd49ff return the cancellation cause for cancelled dials (#4078) 2023-09-16 05:37:58 -07:00
Marten Seemann
1affe38703 move MaxTokenAge configuration option to the Transport (#4084) 2023-09-16 05:10:20 -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
d8cc4cb3ef http3: introduce an HTTP/3 error type (#4039)
* http3: introduce an HTTP/3 error type

* http3: use a pointer receiver for the Error
2023-09-16 04:57:50 -07:00
Marten Seemann
ab1c1be9a9 basic ClusterFuzzLite integration (#4034) 2023-09-15 09:57:13 -07:00
Marten Seemann
22eac50276 ci: combine the go generate workflow with the linting workflow (#4053)
* ci: combine the go generate workflow with the linting workflow

* reorder
2023-09-15 09:56:20 -07:00