Commit Graph

5928 Commits

Author SHA1 Message Date
Marten Seemann
4612b3f19f Merge pull request #3697 from quic-go/benchmark-integration
add a benchmark integration tests to measure allocations
2023-03-27 00:53:12 +11:00
Marten Seemann
a4b0265628 use a chan instead of a context in Connection.HandshakeComplete (#3709) 2023-03-26 06:51:56 -07:00
Marten Seemann
41ddaa0262 attach the QUIC version to context returned by ClientHelloInfo.Context (#3721) 2023-03-26 22:26:14 +09:00
Marten Seemann
11f493381f qlog: use version_mismatch trigger on transport:connection_closed event (#3724) 2023-03-26 22:24:30 +09:00
Glonee
6d7280b7dc http3: use a single UDPConn in RoundTripper (#3720)
* http3: use a single UDPConn in RoundTripper

* update

* add tests
2023-03-14 18:58:26 -07:00
Glonee
a92238b73c http3: sniff HTTP Content Type (#3715)
* add sniff

* add test for sniff

* fix typo in comment

* move bodyAllowedForStatus() to top of the function to aviod calling it twice

* add comments

* format with gofumpt

* fix typo and simplify the code
v0.33.0
2023-02-20 17:29:45 -08:00
Marten Seemann
5b5a8e742c update qtls to include the Go 1.20.1 / 1.19.6 changes to crypto/tls (#3711) 2023-02-16 02:36:57 -08:00
Marten Seemann
ad7182ce84 ci: fix interop Docker builder (#3712) 2023-02-15 23:06:37 -08:00
Marten Seemann
0567a925e5 interop: fix server configuration for the 0-RTT test case (#3713) 2023-02-15 23:05:47 -08:00
zoltan-kiss-cujo
b7384a4404 quicv2: fix TLS extension type (#3710)
* quicv2: fix TLS extension type

* Update internal/handshake/tls_extension_handler.go

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

---------

Co-authored-by: Marten Seemann <martenseemann@gmail.com>
2023-02-15 14:17:31 -08:00
Spencer Comfort
0a9ceca91e ci: update GitHub action workflow versions (#3677)
* Update build-interop-docker.yml

* Update go-generate.yml

* Update lint.yml

* Update unit.yml
2023-02-13 15:26:56 -08:00
Marten Seemann
1f89830626 only allocate datagram receive queue when receiving datagrams (#3702) 2023-02-13 14:55:26 -08:00
Marten Seemann
7effedea79 don't apply invalid transport parameters (#3700) 2023-02-13 14:54:56 -08:00
Marten Seemann
e0d4ffffef http3: fix race condition when accessing the client's connection (#3696)
* http3: fix race condition when accessing the client's connection

* add an integration test for concurrent HTTP requests

---------

Co-authored-by: Bulat Khasanov <afti@yandex.ru>
2023-02-13 14:54:09 -08:00
Marten Seemann
aa091fe672 remove unneeded tracking variables from streams, optimize memory layout (#3699)
* remove the closedForShutdown boolean in the send stream

* remove the canceledWrite boolean in the send stream

* remove the closedForShutdown boolean in the receive stream

* remove the canceledRead boolean in the receive stream

* remove the resetRemotely boolean in the receive stream

* optimize memory layout of the receiveStream

This brings it down from 200 to 192 bytes.
2023-02-13 13:57:00 -08:00
Marten Seemann
0ac5d1c149 reduce the size of messageChan channel in the crypto setup (#3664) 2023-02-13 13:55:49 -08:00
Marten Seemann
04c3fd0756 deprecate quicvarint.Write in favor of quicvarint.Append (#3690) 2023-02-13 02:52:25 -08:00
Marten Seemann
849e53dc3a fix logging of coalesced packets that don't contain long header packets (#3705)
There's a short period between dropping both Initial and Handshake keys and
completion of the handshake, during which we might call PackCoalescedPacket but
just pack a short header packet.
2023-02-13 02:52:04 -08:00
Marten Seemann
ac36330dc8 fix logging of sent Version Negotiation Packets (#3691) 2023-02-13 02:51:38 -08:00
Marten Seemann
59be5ae299 Merge pull request #3689 from quic-go/drop-go118
drop support for Go 1.18, use atomic.Bool
2023-02-13 23:50:24 +13:00
Marten Seemann
dd6f34099b fix flaky send stream test (#3678) 2023-02-13 02:49:30 -08:00
Marten Seemann
97dae87bf4 add a benchmark allocation test for opening / accepting streams 2023-02-04 18:53:14 +13:00
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
Kévin Dunglas
5b72f4c900 docs: Go 1.20 is now supported (#3693) 2023-02-04 08:14:01 +13:00
Marten Seemann
1cea56ac29 Merge pull request #3688 from quic-go/go120
update for Go 1.20
v0.32.0
2023-02-01 17:03:43 -08:00
Marten Seemann
3d9380ec3c reject invalid active_connection_id_limit transport parameter values (#3687) 2023-02-01 17:03:19 -08:00
Marten Seemann
55891e2925 update CI to use Go 1.20 2023-02-02 09:51:18 +13:00
Marten Seemann
68c91c9a2b update qtls for Go 1.20 to v0.1.0 2023-02-02 09:48:32 +13:00
Marten Seemann
89769f409f http3: correctly handle closed clients (#3684)
* http3: use a mock roundTripCloser in tests

* http3: correctly handle failed clients

Specifically,
* immediately remove a client when a request errored
* if that error was an idle error, and the client was a reused client
(from an earlier request that already completed the handshake),
re-dial the connection
2023-01-28 00:49:52 -08:00
Avi Rosenberg
7b2c69451e http3: change status codes to const (#3683)
Signed-off-by: Avi Rosenberg <avrumi96@gmail.com>
2023-01-27 14:40:59 -08: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
dfbfe71309 README: replace go-ipfs with go-libp2p (#3682) 2023-01-25 15:00:34 -08:00
bt90
d937633cad README: add AdGuard Home to project list (#3574)
* Sort projects

* List AdGuardHome

* Reformat table
2023-01-25 14:32:27 -08:00
mstmdev
bbeea8dca0 http3: use HTTP/2 as the default protocol in ListenAndServe (#3673) 2023-01-23 17:48:35 -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
a81365ece8 Merge pull request #3639 from lucas-clemente/remove-version-parameter
remove version parameter from constructors where they are not needed
2023-01-18 01:10:05 -08:00
Marten Seemann
00624f623d refactor the framer to remove the version param from the constructor 2023-01-18 21:49:27 +13:00
Marten Seemann
4bb9f29b55 refactor the packet packer to remove the version param from constructor 2023-01-18 21:35:01 +13:00
Marten Seemann
56985cbfd1 refactor the packet unpacker to remove version param from constructor 2023-01-18 20:53:45 +13:00
Marten Seemann
d4a0793b6a remove unused version parameter from streams map constructor 2023-01-18 20:52:00 +13:00
Marten Seemann
d972a5e8f2 remove unused version parameter from stream constructor 2023-01-18 20:52:00 +13:00
Marten Seemann
0f352f2653 remove unused version parameter from receive stream constructor 2023-01-18 20:51:59 +13:00
Marten Seemann
1646fd545e refactor send stream to remove version from constructor 2023-01-18 20:51:59 +13:00
Marten Seemann
ef28f4667f refactor frame parser to remove version parameter from constructor 2023-01-18 20:51:58 +13:00
Marten Seemann
582edae63d refactor retransmissionQueue to remove version param from constructor 2023-01-18 20:50:17 +13:00
Marten Seemann
5c7d120b8f remove unused version parameter form the connIDGenerator 2023-01-18 20:50:17 +13:00
Marten Seemann
3affa1d911 ackhandler: remove unused version parameter from constructor 2023-01-18 20:50:17 +13:00