Commit Graph

3653 Commits

Author SHA1 Message Date
Benjamin Saunders fffc513624 Suppress noisy inapplicable advisory 2022-01-02 20:44:13 +01:00
Benjamin Saunders d58177fac7 Delete dead code 2022-01-02 20:44:13 +01:00
Benjamin Saunders 2117e1fec5 Privatize VarInt::size
This method isn't useful for converting between VarInts and regular
integers, and hence serves no purpose in the public API.
2022-01-02 20:44:13 +01:00
Benjamin Saunders 369573482a Revert "Tolerate wide IP_TOS cmsgs"
This has only been observed on WSL1, which is obsolete and not worth
supporting.

This reverts commit 91dd91fa99.
2022-01-01 21:36:29 +01:00
Benjamin Saunders f91f74610c Update example README output samples 2022-01-01 21:36:29 +01:00
Benjamin Saunders 91dd91fa99 Tolerate wide IP_TOS cmsgs 2021-12-29 07:40:15 +01:00
Benjamin Saunders b2c24d957a Drop futures-util dep from benchmarking tools 2021-12-29 07:34:22 +01:00
Benjamin Saunders af93954604 Remove futures-util dependency from quinn-udp 2021-12-29 07:34:22 +01:00
Benjamin Saunders 19b58cc948 Drop futures-util dev-dependency
This wasn't serving any purpose we couldn't more readably accomplish
with async/await.
2021-12-29 07:34:22 +01:00
Benjamin Saunders 510e6789df Make futures-core dependency optional
This was only used to implement Stream, which we don't actually need.
2021-12-29 07:34:22 +01:00
Benjamin Saunders 943c4dfe75 Add inherent async fn next to Datagrams stream
Establishes symmetry with our other async streams, making it usable
without importing a trait from futures-core.
2021-12-29 07:34:22 +01:00
Benjamin Saunders 8e40311837 Replace futures-channel with tokio::sync
We're already using tokio::sync for Notify, so this drops a dep for
free.
2021-12-29 07:34:22 +01:00
Benjamin Saunders 48ed425ddf Add missing feature for tokio::sync::Notify 2021-12-29 07:34:22 +01:00
Benjamin Saunders 4f0f77a20d Fix many_connections test
This was calling `Endpoint::connect_with` outside of a tokio runtime
context.
2021-12-29 07:34:22 +01:00
Benjamin Saunders e39f3f68fc Replace Broadcast helper with tokio::sync::Notify
Drops a chunk of complex and under-audited synchronization code in
favor of a similar, better-tested and more efficient primitive from
tokio.
2021-12-23 10:56:36 +01:00
Benjamin Saunders fab202d56e Factor out common stream open logic 2021-12-23 10:56:36 +01:00
Benjamin Saunders f734781873 Inline single-use stream opening futures 2021-12-23 10:56:36 +01:00
Benjamin Saunders 2cfe7fa15e Use async fn for opening streams 2021-12-23 10:56:36 +01:00
Benjamin Saunders 785cdee93e Standardize on async fn for I/O methods 2021-12-21 21:51:23 +01:00
Benjamin Saunders 59c7a68f7a Replace unexported futures with async fn
This makes for much more readable docs (as the return type is visible)
and is more forwards-compatible and less cluttery than reexporting the
futures by name.
2021-12-21 21:51:23 +01:00
Benjamin Saunders 2cff9e1eb9 Reexport UnknownStream
This occurs in the public API of Send/RecvStream.
2021-12-21 21:50:05 +01:00
Benjamin Saunders 646be16090 Move UnknownStream error to connection module
This is relevant to send streams as well, so a more common location
seems appropriate.
2021-12-21 21:50:05 +01:00
Benjamin Saunders 4e0f7c5c54 Don't depend on futures-io by default 2021-12-21 07:03:27 +01:00
Benjamin Saunders af0dc3d949 Replace futures-util with futures-io 2021-12-21 07:03:27 +01:00
Benjamin Saunders 7ed94be3e4 Provide inherent next methods on streams
Allows for convenient use in async blocks by downstream code without a
futures_util dependency.
2021-12-21 07:03:27 +01:00
Benjamin Saunders 8d7d9451d0 Make futures-util dependency optional 2021-12-21 07:03:27 +01:00
Benjamin Saunders 644ca88efd Remove futures_util::future::poll_fn use
This is our last hard dep on futures_util, and not too difficult to do
by hand.
2021-12-21 07:03:27 +01:00
Benjamin Saunders 0a118f7116 Remove StreamExt::poll_next_unpin uses
It's simple enough to Pin::new ourselves.
2021-12-21 07:03:27 +01:00
Benjamin Saunders 9e959174d9 Use Stream directly from futures_core 2021-12-21 07:03:27 +01:00
Benjamin Saunders c83479b57c Remove FutureExt::poll_unpin uses
It's simple enough to Pin::new ourselves.
2021-12-21 07:03:27 +01:00
Benjamin Saunders 11c58608c2 Vendor "ready" macro 2021-12-21 07:03:27 +01:00
Dirkjan Ochtman ee6bbf1d2a Fix clippy suggestions from 1.57 2021-12-10 10:29:12 -08:00
Benjamin Saunders 5822ff3781 Fix ALPN misconfiguration in example
Introduced by a copy-paste error in
9daaa15da2
2021-12-10 10:16:53 +01:00
Benjamin Saunders 20e49e466b Remove obsolete comment 2021-11-28 13:31:50 -08:00
Benjamin Saunders 7d8dea7747 Delete dead reexport 2021-11-28 13:31:50 -08:00
Benjamin Saunders 00c4aada68 Fix missing default-features = false in quinn-udp 2021-11-28 13:31:50 -08:00
Benjamin Saunders a9aafec720 Fix quinn build w/ no default features
EndpointConfig::default is only provided by proto when ring is
available.
2021-11-28 13:31:50 -08:00
Matthias Einwag 721cc1bc59 Add additional metrics for lost packets and bytes
These are a bit more explicit than just tracking congestion events, since a
congestion event can cover multiple packets.
The total amount of sent packets is now also logged, in order for applications
to calculate the relative amount of packet loss. The amount of packets can
be different from the amount of datagrams in case of coalesced packets.
2021-11-25 21:41:37 -08:00
Benjamin Saunders 7dddfc196a Use config to reject connections rather than extra state 2021-11-24 18:18:48 +01:00
Benjamin Saunders fcba74f929 Replace fxhash with rustc_hash, its successor 2021-11-22 01:30:47 +01:00
Benjamin Saunders 4b0daad5ce Factor out ACK-eliciting frame test 2021-11-20 15:12:16 -08:00
Benjamin Saunders a2fe103f4b Only send ACKs when they've changed
Saves a great deal of redundancy when transmitting bulk data, and
gives the receiver less work to do. If an ACK is lost, we'll
necessarily retransmit it, because packets are only deemed lost when
an ACK is received from the peer which does not cover them.
2021-11-20 15:12:16 -08:00
BiagioFesta f8ae355575 Make pub visibility for RttEstimator used by pub trait Congestion 2021-11-19 11:49:58 -08:00
Max Davitt b4c0405b80 Simplify quinn crate entry point link 2021-11-16 12:24:41 -08:00
Max Davitt de592877cf Adjust link to quinn crate entry point in docs 2021-11-16 12:24:41 -08:00
Benjamin Saunders fc691a8d97 Remove unnecessary dependency 2021-11-15 06:51:45 +01:00
Dirkjan Ochtman 48b33cdf4e Bump version numbers for 0.8.0 release 0.8.0 2021-11-14 12:51:41 -08:00
Benjamin Saunders 9a769f29ed Remove obsolete HTTP feature note 2021-11-11 07:37:50 +01:00
Dirkjan Ochtman d902b143ba Allocate a single local CID 2021-11-10 14:19:08 -08:00
Dirkjan Ochtman d9beb088f5 Sort Endpoint::add_connection() below handle_first_packet()
Also apply some trivial style tweaks.
2021-11-10 14:19:08 -08:00