Dirkjan Ochtman
5a687e2698
quinn-proto: split up Assembler::read()
2021-01-28 11:46:32 +01:00
Dirkjan Ochtman
08a95136a8
quinn: remove separate read_unordered API
2021-01-28 11:46:32 +01:00
Dirkjan Ochtman
0d5a288983
quinn-proto: yield read data as Chunks
2021-01-28 11:46:32 +01:00
Dirkjan Ochtman
7226d8784a
quinn-proto: use struct to yield data from assembler
2021-01-28 11:46:32 +01:00
Dirkjan Ochtman
51a11703ce
quinn-proto: rename assembler::Chunk to Buffer
2021-01-28 11:46:31 +01:00
Dirkjan Ochtman
ca692c233d
quinn-proto: unify API for ordered and unordered reads
2021-01-28 11:46:31 +01:00
Dirkjan Ochtman
c7c72924f8
quinn-proto: unify ordered and unordered read paths in assembler
2021-01-28 11:46:31 +01:00
Dirkjan Ochtman
f4ad3676e3
quinn-proto: move post_read() logic into Retransmits
2021-01-28 11:46:31 +01:00
Dirkjan Ochtman
d64839c1f0
quinn-proto: merge add_read_credits() into post_read()
2021-01-28 11:46:31 +01:00
Dirkjan Ochtman
c439449f4a
quinn-proto: simplify ShouldTransmit interface
2021-01-28 11:46:31 +01:00
Dirkjan Ochtman
85e9460ad1
quinn-proto: move ShouldTransmit into streams module
2021-01-28 11:46:31 +01:00
Dirkjan Ochtman
cf4bb600c0
quinn-proto: add missing defragmented decrement
2021-01-28 10:31:23 +01:00
Timon
41171ee6a6
(2) Quinn Introduction Chapter, Connection Setup Page ( #921 )
...
Co-authored-by: Dirkjan Ochtman <dirkjan@ochtman.nl >
2021-01-28 10:18:20 +01:00
est31
29d37aa6d8
Don't assume representation of SocketAddr
2021-01-28 09:53:42 +01:00
est31
f3d82d79a6
Don't assume representation of Ipv*Addr types
...
Also, remove two uses of unsafe :)
2021-01-28 09:53:42 +01:00
Benjamin Saunders
612c9ac2b8
Remove unnecessary dropping in client/server examples
2021-01-26 06:46:32 +01:00
Benjamin Saunders
03de1d0374
Ensure graceful close in client example
2021-01-26 06:46:32 +01:00
Dirkjan Ochtman
7b7bab6b72
Add note about MSRV policy
2021-01-25 13:45:57 -08:00
Dirkjan Ochtman
0a07eaba20
quinn-proto: let Assembler take responsibility for reads from stopped streams
2021-01-25 13:27:52 -08:00
Dirkjan Ochtman
f569495b71
quinn-proto: rename read_chunk() to read()
2021-01-25 13:27:52 -08:00
Dirkjan Ochtman
ab98859756
quinn-proto: remove read() methods in favor of read_chunk()
2021-01-25 13:27:52 -08:00
Dirkjan Ochtman
f2d01fb2ad
quinn-proto: check for stopped assembler before reading data
...
I'm guessing these were missed when these new methods were added,
and it seems like they do present a bit of a layering violation.
2021-01-25 13:27:52 -08:00
Dirkjan Ochtman
7947ad5854
quinn-proto: split connection::streams::types into send and recv modules
2021-01-25 13:27:52 -08:00
Dirkjan Ochtman
6ce0ef2542
quinn-proto: split streams module up
2021-01-25 13:27:52 -08:00
Dirkjan Ochtman
6e9db53d14
quinn-proto: rename Assembler::read_chunk() to read()
2021-01-25 13:27:52 -08:00
Dirkjan Ochtman
6a58b3f542
quinn: remove unused field RecvStream::any_data_read
2021-01-25 13:27:52 -08:00
Dirkjan Ochtman
0439ec5298
quinn-proto: remove slice-based read API from Assembler
2021-01-25 13:27:52 -08:00
Dirkjan Ochtman
0654eb254e
Forward max_length argument from high-level API
2021-01-25 13:27:52 -08:00
Dirkjan Ochtman
ce67167968
quinn-proto: add max_length argument to Assembler::read_chunk()
2021-01-25 13:27:52 -08:00
Dirkjan Ochtman
72e0f9aa5a
quinn-proto: read crypto stream as bytes
2021-01-25 13:27:52 -08:00
Dirkjan Ochtman
2f0dc868d7
Drop periods from bullet list sentence fragments
2021-01-25 01:08:02 -08:00
Dirkjan Ochtman
5bedbbf666
Set up MSRV in CI ( fixes #979 )
2021-01-25 01:08:02 -08:00
Dirkjan Ochtman
ac029a55d9
Fix compatibility with MSRV
2021-01-25 01:08:02 -08:00
Dirkjan Ochtman
51685fb760
Upgrade to tokio 1, bytes 1 and rustls 0.19
2021-01-25 08:53:00 +01:00
Dirkjan Ochtman
22fa31d571
quinn: move UdpExt functionality into platform-specific UdpSocket types
2021-01-25 08:53:00 +01:00
Dirkjan Ochtman
3dddfca8ff
Simplify error propagation for ReadExact
2021-01-25 08:53:00 +01:00
Dirkjan Ochtman
395dff32be
Simplify interface for scan_ack_blocks()
2021-01-25 08:53:00 +01:00
Dirkjan Ochtman
0dd5537e25
quinn-h3: change 4-tuple to a struct
2021-01-25 08:53:00 +01:00
Dirkjan Ochtman
889d2b3e03
quinn-h3: improve trace output
2021-01-25 08:53:00 +01:00
Dirkjan Ochtman
6de0b470be
quinn-h3: fix typo in example function name
2021-01-25 08:53:00 +01:00
Dirkjan Ochtman
6bbea44fb5
quinn-h3: reduce rightward drift in RecvUni Future impl
2021-01-25 08:53:00 +01:00
Dirkjan Ochtman
661884f1ca
quinn-h3: enable client-side key logging in tests
2021-01-25 08:53:00 +01:00
Dirkjan Ochtman
48a3213f74
quinn-h3: copy tracing subscriber setup from quinn
2021-01-25 08:53:00 +01:00
Dirkjan Ochtman
ea81e654da
quinn-h3: clarify error message for closed control stream
2021-01-25 08:53:00 +01:00
Benjamin Saunders
01b55384eb
Increase stream concurrency limits to suit new semantics
2021-01-22 11:39:00 -08:00
Benjamin Saunders
1e5a538221
Limit concurrent streams rather than accept queue size
...
Previously, we limited the number of streams that could be opened by
the peer but not `accept`ed by the application. However, to guarantee
bounded resource use, applications will typically want to limit the
number of streams they process concurrently. While this could
be *approximately* implemented at the application layer by controlling
calls to accept, that approach has a significant drawback: If streams
are slow to process, the worst-case per-stream latency observed by a
peer who opens the maximum number of streams can be arbitrarily bad,
because streams may be opened above the limit the local application is
willing to process. Reducing the number of unaccepted streams
tolerated can reduce the proportion of streams affected, but reducing
it too low will increase the number of round trips required to open
any given number of streams, increasing average latency significantly.
As a side benefit, this reduces the effort needed for applications to
limit concurrency to a fixed quantity, which is expected to be the
overwhelmingly common case. Should a use case for dynamic concurrency
limits arise, we can expose a setter.
2021-01-22 11:39:00 -08:00
Benjamin Saunders
f4b3fc15ef
Copy default flow control parameters into Streams
...
Saves passing TransportParameters in all over the place.
2021-01-22 11:39:00 -08:00
Benjamin Saunders
58840bed5c
Cosmetic tweak
2021-01-22 11:39:00 -08:00
Benjamin Saunders
fe0adf7d4a
Reset send_streams counter when 0-RTT is rejected
2021-01-22 11:39:00 -08:00
Benjamin Saunders
a37efdaa82
Centralize connection state updates due to stream state discard
2021-01-22 11:39:00 -08:00