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