Commit Graph

6164 Commits

Author SHA1 Message Date
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
Marten Seemann
576d85cd3d add support for Go 1.20 (#3641) 2023-01-17 23:22:36 -08:00
Marten Seemann
2aa71ff76b use a sync.Pool for ackhandler.Frames (#3656) 2023-01-17 23:15:02 -08:00
Marten Seemann
b77d8570df pass payload around by value in the packet packer (#3648) 2023-01-17 22:53:05 -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
c20b541dbb avoid allocating a shortHeaderPacket struct in the PackPacket path (#3647) 2023-01-18 10:04:35 +13: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
3d4bbc28ba Merge pull request #3644 from lucas-clemente/short-header-packing
use a separate code path for handling short header packets
2023-01-17 01:08:54 -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
384ad9b2ae don't allocate a wire.ExtendedHeader for short header packets 2023-01-17 21:53:39 +13:00
Marten Seemann
518fd1c877 separate long and short header packets in the coalescedPacket 2023-01-17 21:53:39 +13:00
Marten Seemann
124e597cf9 add a function to write short headers 2023-01-17 21:53:39 +13:00
Marten Seemann
87f51d33dc move the packet buffer out of the shortHeaderPacket struct 2023-01-17 21:53:39 +13:00