From 9046b213aede67af9e3fdca1616b89ecd5b8802f Mon Sep 17 00:00:00 2001 From: Roman Proskuryakov Date: Thu, 19 Aug 2021 15:20:34 +0300 Subject: [PATCH] Use quinn-udp instead of quinn::platform --- Cargo.toml | 4 ++-- quinn-udp/Cargo.toml | 29 +++++++++++++++++++++++++++++ quinn/Cargo.toml | 9 ++------- quinn/src/builders.rs | 6 ++---- quinn/src/connection.rs | 2 +- quinn/src/endpoint.rs | 2 +- quinn/src/lib.rs | 1 - 7 files changed, 37 insertions(+), 16 deletions(-) create mode 100644 quinn-udp/Cargo.toml diff --git a/Cargo.toml b/Cargo.toml index 5eed32b54..183541e35 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,6 +1,6 @@ [workspace] -members = ["quinn", "quinn-proto", "interop", "bench", "perf", "fuzz"] -default-members = ["quinn", "quinn-proto", "interop", "bench", "perf"] +members = ["quinn", "quinn-proto", "quinn-udp", "interop", "bench", "perf", "fuzz"] +default-members = ["quinn", "quinn-proto", "quinn-udp", "interop", "bench", "perf"] [profile.bench] debug = true diff --git a/quinn-udp/Cargo.toml b/quinn-udp/Cargo.toml new file mode 100644 index 000000000..5d5cb6443 --- /dev/null +++ b/quinn-udp/Cargo.toml @@ -0,0 +1,29 @@ +[package] +name = "quinn-udp" +version = "0.7.0" +authors = ["Benjamin Saunders ", "Dirkjan Ochtman "] +license = "MIT OR Apache-2.0" +repository = "https://github.com/djc/quinn" +description = "UDP sockets with ECN information for the QUIC transport protocol" +keywords = ["quic"] +categories = [ "network-programming", "asynchronous" ] +workspace = ".." +edition = "2018" + +[package.metadata.docs.rs] +all-features = true + +[badges] +maintenance = { status = "experimental" } + +[dependencies] +futures-util = { version = "0.3.11", features = ["io"] } +libc = "0.2.69" +mio = { version = "0.7.7", features = ["net"] } +proto = { package = "quinn-proto", path = "../quinn-proto", version = "0.7" } +socket2 = "0.4" +tracing = "0.1.10" +tokio = { version = "1.0.1", features = ["net"] } + +[target.'cfg(unix)'.dependencies] +lazy_static = "1" diff --git a/quinn/Cargo.toml b/quinn/Cargo.toml index 0739028bb..26a508b7d 100644 --- a/quinn/Cargo.toml +++ b/quinn/Cargo.toml @@ -33,20 +33,15 @@ bytes = "1" futures-util = { version = "0.3.11", features = ["io"] } futures-channel = "0.3.11" fxhash = "0.2.1" -libc = "0.2.69" -mio = { version = "0.7.7", features = ["net"] } once_cell = "1.7.2" proto = { package = "quinn-proto", path = "../quinn-proto", version = "0.7" } rustls = { version = "0.19", features = ["quic"], optional = true } -socket2 = "0.4" thiserror = "1.0.21" tracing = "0.1.10" -tokio = { version = "1.0.1", features = ["net", "rt", "time"] } +tokio = { version = "1.0.1", features = ["rt", "time"] } +udp = { package = "quinn-udp", path = "../quinn-udp", version = "0.7" } webpki = { version = "0.21", optional = true } -[target.'cfg(unix)'.dependencies] -lazy_static = "1" - [dev-dependencies] anyhow = "1.0.22" crc = "1.8.1" diff --git a/quinn/src/builders.rs b/quinn/src/builders.rs index 1b6251756..393532bab 100644 --- a/quinn/src/builders.rs +++ b/quinn/src/builders.rs @@ -7,11 +7,9 @@ use proto::{ }; use thiserror::Error; use tracing::error; +use udp::UdpSocket; -use crate::{ - endpoint::{Endpoint, EndpointDriver, EndpointRef, Incoming}, - platform::UdpSocket, -}; +use crate::endpoint::{Endpoint, EndpointDriver, EndpointRef, Incoming}; #[cfg(feature = "rustls")] use crate::{Certificate, CertificateChain, PrivateKey}; diff --git a/quinn/src/connection.rs b/quinn/src/connection.rs index 9ceeea496..8b1825e94 100644 --- a/quinn/src/connection.rs +++ b/quinn/src/connection.rs @@ -17,11 +17,11 @@ use proto::{ConnectionError, ConnectionHandle, ConnectionStats, Dir, StreamEvent use thiserror::Error; use tokio::time::{sleep_until, Instant as TokioInstant, Sleep}; use tracing::info_span; +use udp::caps; use crate::{ broadcast::{self, Broadcast}, mutex::Mutex, - platform::caps, recv_stream::RecvStream, send_stream::{SendStream, WriteError}, ConnectionEvent, EndpointEvent, VarInt, diff --git a/quinn/src/endpoint.rs b/quinn/src/endpoint.rs index 9831ddb42..f1f019952 100644 --- a/quinn/src/endpoint.rs +++ b/quinn/src/endpoint.rs @@ -18,12 +18,12 @@ use futures_util::StreamExt; use fxhash::FxHashMap; use once_cell::sync::OnceCell; use proto::{self as proto, generic::ClientConfig, ConnectError, ConnectionHandle, DatagramEvent}; +use udp::{RecvMeta, UdpSocket, BATCH_SIZE}; use crate::{ broadcast::{self, Broadcast}, builders::EndpointBuilder, connection::Connecting, - platform::{RecvMeta, UdpSocket, BATCH_SIZE}, work_limiter::WorkLimiter, ConnectionEvent, EndpointEvent, VarInt, IO_LOOP_BOUND, RECV_TIME_BOUND, }; diff --git a/quinn/src/lib.rs b/quinn/src/lib.rs index f87567df8..14922f6a7 100644 --- a/quinn/src/lib.rs +++ b/quinn/src/lib.rs @@ -57,7 +57,6 @@ mod builders; mod connection; mod endpoint; mod mutex; -mod platform; mod recv_stream; mod send_stream; mod work_limiter;