Marten Seemann
b791bb6cdf
add a benchmark integration test for performing handshakes
2023-02-04 18:42:54 +13:00
Marten Seemann
dee98638a4
use atomic.Bool from the standard library
2023-02-04 17:44:57 +13:00
Marten Seemann
f42357f096
drop qtls support for Go 1.18
2023-02-04 17:44:54 +13:00
Marten Seemann
55891e2925
update CI to use Go 1.20
2023-02-02 09:51:18 +13:00
Marten Seemann
3f9d8feab2
return StreamErrors for all kinds of stream cancelations ( #3681 )
...
* fix: return typed errors when after cancelling actions
This is errors.Is'ed by libp2p and the fmt.Errorf messages didn't passed that test:
82315917f7/p2p/transport/quic/stream.go (L23)
* replace StreamErrorAction with a local / remote flag
Co-authored-by: Jorropo <jorropo.pgm@gmail.com >
2023-01-26 12:58:06 -08: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
9488539a49
update imports to use qtls and qpack from quic-go GitHub organization ( #3676 )
2023-01-20 13:42:54 -08:00
Marten Seemann
576d85cd3d
add support for Go 1.20 ( #3641 )
2023-01-17 23:22:36 -08:00
Marten Seemann
4d9ab7b604
Merge pull request #3636 from lucas-clemente/early-conn
...
make ConnectionState usable during the handshake
2023-01-17 22:29:08 -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
aca052dc7c
stop using the ExtendedHeader for parsing short header packets in tests
2023-01-17 21:53:39 +13:00
Marten Seemann
e89fc1152b
stop using the ExtendedHeader for writing short header packets in tests
2023-01-17 21:53:39 +13: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
a2e52e31a8
fix flaky counting of 0-RTT packets in integration test ( #3669 )
2023-01-16 23:34:45 +13:00
Marten Seemann
0480237ca6
add integration tests for Listen and ListenEarly
2023-01-05 16:37:08 +13:00
Marten Seemann
45b489b6f6
make ConnectionState usable during the handshake
2023-01-05 16:37:07 +13:00
Marten Seemann
b52d34008f
add Allow0RTT opt in the quic.Config to control 0-RTT on the server side ( #3635 )
2023-01-04 16:18:11 -08:00
Marten Seemann
07918469bc
use ed25519 instead of RSA keys in integration tests ( #3661 )
2023-01-04 07:06:34 +13:00
Marten Seemann
71f9182de6
update golang.org/x packages to tagged versions ( #3628 )
2023-01-04 07:02:49 +13:00
Marten Seemann
8d496ebb5e
introduce a type for the stateless reset key ( #3621 )
2022-11-16 14:11:25 -08:00
Marten Seemann
df762b7552
use the new zero-allocation control message parsing function from x/sys ( #3609 )
2022-11-04 04:36:46 -07:00
Marten Seemann
f78683abb6
update qpack to v0.3.0 ( #3593 )
2022-10-12 06:00:58 -07:00
Marten Seemann
423f5dcf6c
Merge pull request #3589 from lucas-clemente/update-ginkgo-v2
...
migrate to Ginkgo v2, remove benchmark test
2022-10-11 22:03:09 +03:00
Marten Seemann
192ae3437b
don't drop more than 10 consecutive packets in drop test ( #3584 )
2022-10-11 05:44:07 -07:00
Marten Seemann
870fbe7ab0
migrate to Ginkgo v2
2022-10-11 16:38:44 +04:00
Marten Seemann
2b5d1281c1
http3: add http3.Server.ServeQUICConn to serve a single QUIC connection ( #3587 )
2022-10-11 05:07:24 -07:00
Marten Seemann
597e00549d
update qtls to versions that include the ec_point_formats fix ( #3583 )
...
The new qtls versions contain the standard library fix for
https://github.com/golang/go/issues/49126 .
2022-10-11 02:26:25 -07: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
4cbb4f8114
remove ConnectionID.Equal function
...
Connection IDs can now be compared with ==.
2022-08-29 11:30:32 +03: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
9e0f9e62ff
parse arbitrary length Connection IDs in Version Negotiation packets
2022-08-29 10:58:33 +03:00
Marten Seemann
53412e9ba3
trace arbitrary length Connection IDs for Version Negotiation packets
2022-08-29 10:58:33 +03:00
Marten Seemann
880dfc699c
use the null tracers in the tracer integration tests ( #3528 )
2022-08-29 10:27:04 +03:00
Marten Seemann
07412be8a0
Merge pull request #3512 from lucas-clemente/null-connection-tracer
...
add a logging.NullTracer and logging.NullConnectionTracer
2022-08-27 13:53:41 +03:00
Marten Seemann
cd87a64e1e
use the logging.Null{Connection}Tracer in integration tests
2022-08-27 13:16:40 +03:00
João Oliveirinha
66f6fe0b71
add support for providing a custom Connection ID generator via Config ( #3452 )
...
* Add support for providing a custom ConnectionID generator via Config
This work makes it possible for servers or clients to control how
ConnectionIDs are generated, which in turn will force peers in the
connection to use those ConnectionIDs as destination connection IDs when sending packets.
This is useful for scenarios where we want to perform some kind
selection on the QUIC packets at the L4 level.
* add more doc
* refactor populate config to not use provided config
* add an integration test for custom connection ID generators
* fix linter warnings
Co-authored-by: Marten Seemann <martenseemann@gmail.com >
2022-08-24 04:06:16 -07:00
KevinZønda
a90135751b
fix datagram support detection ( #3511 )
...
* fix: datagram support detection
- treat zero MaxDatagramFrameSize as unsupported.
- avoid send corresponding transport parameters when support is disabled
- report error when calling Send/ReceiveMessage and support is disabled
see https://github.com/lucas-clemente/quic-go/issues/3505
* patch: always initiate datagram
* fix: remove useless nil check
2022-08-22 03:02:40 -07:00
Marten Seemann
263f728ea8
add integration test for the retransmission of CONNECTION_CLOSE packets
2022-08-22 11:42:44 +03:00
Marten Seemann
bbfb7bd493
disable address validation by default
...
We should provide safe defaults. Since we implement the 3x amplification
limit, disabling address validation is not unsafe, and will save 1 RTT
for every handshake for applications that don't explicitely configure
Retries.
2022-08-13 17:42:46 +03:00
Marten Seemann
7fde609eef
make sure RunHandshake has returned before closing, improve MITM tests
2022-08-13 17:42:45 +03:00
Marten Seemann
f2fa98c0dd
implement a more intuitive address validation API
2022-08-12 13:13:29 +03:00
Marten Seemann
556a6e2f99
Merge pull request #3489 from lucas-clemente/generic-streams-map-incoming
...
use a generic streams map for incoming streams
2022-08-12 13:05:53 +04:00
Marten Seemann
b372d02ac4
remove genny dependency
2022-08-12 11:18:57 +03:00
Marten Seemann
bea5de0221
Merge pull request #3483 from lucas-clemente/generic-min-max
...
use generic Min and Max functions
2022-08-12 12:09:30 +04:00
Marten Seemann
80fd1b57c8
add a function to distinguish between long and short header packets ( #3498 )
2022-08-11 07:35:01 -07:00
Marten Seemann
b6e2608c15
update the Go 1.19 qtls to v0.1.0 ( #3490 )
2022-08-10 09:53:32 -07:00
Marten Seemann
498475fa60
update golangci-lint action to v3, golangci-lint to v1.48.0 ( #3499 )
...
* run gofmt -s -w
* stop using the deprecated io/ioutil package
* update golangci-lint action to v3, golangci-lint to v1.48.0
2022-08-10 09:50:48 -07:00
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