mirror of
https://github.com/MercuryWorkshop/epoxy-tls.git
synced 2025-05-13 06:20:02 -04:00
remove timer
This commit is contained in:
parent
06cc16c692
commit
12a95658b9
3 changed files with 21 additions and 57 deletions
31
Cargo.lock
generated
31
Cargo.lock
generated
|
@ -651,7 +651,7 @@ dependencies = [
|
||||||
"rustls-pemfile",
|
"rustls-pemfile",
|
||||||
"rustls-pki-types",
|
"rustls-pki-types",
|
||||||
"rustls-webpki",
|
"rustls-webpki",
|
||||||
"send_wrapper 0.6.0",
|
"send_wrapper",
|
||||||
"thiserror",
|
"thiserror",
|
||||||
"tokio",
|
"tokio",
|
||||||
"wasm-bindgen",
|
"wasm-bindgen",
|
||||||
|
@ -894,16 +894,6 @@ version = "0.3.30"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "38d84fa142264698cdce1a9f9172cf383a0c82de1bddcf3092901442c4097004"
|
checksum = "38d84fa142264698cdce1a9f9172cf383a0c82de1bddcf3092901442c4097004"
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "futures-timer"
|
|
||||||
version = "3.0.3"
|
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
||||||
checksum = "f288b0a4f20f9a56b5d1da57e2227c661b7b16168e2f72365f57b63326e29b24"
|
|
||||||
dependencies = [
|
|
||||||
"gloo-timers",
|
|
||||||
"send_wrapper 0.4.0",
|
|
||||||
]
|
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "futures-util"
|
name = "futures-util"
|
||||||
version = "0.3.30"
|
version = "0.3.30"
|
||||||
|
@ -951,18 +941,6 @@ version = "0.29.0"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "40ecd4077b5ae9fd2e9e169b102c6c330d0605168eb0e8bf79952b256dbefffd"
|
checksum = "40ecd4077b5ae9fd2e9e169b102c6c330d0605168eb0e8bf79952b256dbefffd"
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "gloo-timers"
|
|
||||||
version = "0.2.6"
|
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
||||||
checksum = "9b995a66bb87bebce9a0f4a95aed01daca4872c050bfcb21653361c03bc35e5c"
|
|
||||||
dependencies = [
|
|
||||||
"futures-channel",
|
|
||||||
"futures-core",
|
|
||||||
"js-sys",
|
|
||||||
"wasm-bindgen",
|
|
||||||
]
|
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "h2"
|
name = "h2"
|
||||||
version = "0.4.6"
|
version = "0.4.6"
|
||||||
|
@ -1945,12 +1923,6 @@ version = "1.0.23"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "61697e0a1c7e512e84a621326239844a24d8207b4669b41bc18b32ea5cbf988b"
|
checksum = "61697e0a1c7e512e84a621326239844a24d8207b4669b41bc18b32ea5cbf988b"
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "send_wrapper"
|
|
||||||
version = "0.4.0"
|
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
||||||
checksum = "f638d531eccd6e23b980caf34876660d38e265409d8e99b397ab71eb3612fad0"
|
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "send_wrapper"
|
name = "send_wrapper"
|
||||||
version = "0.6.0"
|
version = "0.6.0"
|
||||||
|
@ -2928,7 +2900,6 @@ dependencies = [
|
||||||
"fastwebsockets",
|
"fastwebsockets",
|
||||||
"flume",
|
"flume",
|
||||||
"futures",
|
"futures",
|
||||||
"futures-timer",
|
|
||||||
"getrandom",
|
"getrandom",
|
||||||
"nohash-hasher",
|
"nohash-hasher",
|
||||||
"pin-project-lite",
|
"pin-project-lite",
|
||||||
|
|
|
@ -20,7 +20,6 @@ event-listener = "5.3.1"
|
||||||
fastwebsockets = { version = "0.8.0", features = ["unstable-split"], optional = true }
|
fastwebsockets = { version = "0.8.0", features = ["unstable-split"], optional = true }
|
||||||
flume = "0.11.0"
|
flume = "0.11.0"
|
||||||
futures = "0.3.30"
|
futures = "0.3.30"
|
||||||
futures-timer = "3.0.3"
|
|
||||||
getrandom = { version = "0.2.15", features = ["std"], optional = true }
|
getrandom = { version = "0.2.15", features = ["std"], optional = true }
|
||||||
nohash-hasher = "0.2.0"
|
nohash-hasher = "0.2.0"
|
||||||
pin-project-lite = "0.2.14"
|
pin-project-lite = "0.2.14"
|
||||||
|
@ -30,7 +29,7 @@ tokio = { version = "1.39.3", optional = true, default-features = false }
|
||||||
default = ["generic_stream", "certificate"]
|
default = ["generic_stream", "certificate"]
|
||||||
fastwebsockets = ["dep:fastwebsockets", "dep:tokio"]
|
fastwebsockets = ["dep:fastwebsockets", "dep:tokio"]
|
||||||
generic_stream = []
|
generic_stream = []
|
||||||
wasm = ["futures-timer/wasm-bindgen", "getrandom/js"]
|
wasm = ["getrandom/js"]
|
||||||
certificate = ["dep:ed25519", "dep:bitflags", "dep:getrandom"]
|
certificate = ["dep:ed25519", "dep:bitflags", "dep:getrandom"]
|
||||||
|
|
||||||
[package.metadata.docs.rs]
|
[package.metadata.docs.rs]
|
||||||
|
|
|
@ -21,15 +21,11 @@ pub use crate::{packet::*, stream::*};
|
||||||
|
|
||||||
use extensions::{udp::UdpProtocolExtension, AnyProtocolExtension, ProtocolExtensionBuilder};
|
use extensions::{udp::UdpProtocolExtension, AnyProtocolExtension, ProtocolExtensionBuilder};
|
||||||
use flume as mpsc;
|
use flume as mpsc;
|
||||||
use futures::{channel::oneshot, select, Future, FutureExt};
|
use futures::{channel::oneshot, Future};
|
||||||
use futures_timer::Delay;
|
|
||||||
use inner::{MuxInner, WsEvent};
|
use inner::{MuxInner, WsEvent};
|
||||||
use std::{
|
use std::sync::{
|
||||||
sync::{
|
|
||||||
atomic::{AtomicBool, Ordering},
|
atomic::{AtomicBool, Ordering},
|
||||||
Arc,
|
Arc,
|
||||||
},
|
|
||||||
time::Duration,
|
|
||||||
};
|
};
|
||||||
use ws::{AppendingWebSocketRead, LockedWebSocketWrite};
|
use ws::{AppendingWebSocketRead, LockedWebSocketWrite};
|
||||||
|
|
||||||
|
@ -176,6 +172,7 @@ impl std::error::Error for WispError {}
|
||||||
async fn maybe_wisp_v2<R>(
|
async fn maybe_wisp_v2<R>(
|
||||||
read: &mut R,
|
read: &mut R,
|
||||||
write: &LockedWebSocketWrite,
|
write: &LockedWebSocketWrite,
|
||||||
|
role: Role,
|
||||||
builders: &mut [Box<dyn ProtocolExtensionBuilder + Sync + Send>],
|
builders: &mut [Box<dyn ProtocolExtensionBuilder + Sync + Send>],
|
||||||
) -> Result<(Vec<AnyProtocolExtension>, Option<ws::Frame<'static>>, bool), WispError>
|
) -> Result<(Vec<AnyProtocolExtension>, Option<ws::Frame<'static>>, bool), WispError>
|
||||||
where
|
where
|
||||||
|
@ -186,11 +183,9 @@ where
|
||||||
let mut downgraded = true;
|
let mut downgraded = true;
|
||||||
|
|
||||||
let extension_ids: Vec<_> = builders.iter().map(|x| x.get_id()).collect();
|
let extension_ids: Vec<_> = builders.iter().map(|x| x.get_id()).collect();
|
||||||
if let Some(frame) = select! {
|
|
||||||
x = read.wisp_read_frame(write).fuse() => Some(x?),
|
let frame = read.wisp_read_frame(write).await?;
|
||||||
_ = Delay::new(Duration::from_secs(5)).fuse() => None
|
let packet = Packet::maybe_parse_info(frame, role, builders)?;
|
||||||
} {
|
|
||||||
let packet = Packet::maybe_parse_info(frame, Role::Client, builders)?;
|
|
||||||
if let PacketType::Info(info) = packet.packet_type {
|
if let PacketType::Info(info) = packet.packet_type {
|
||||||
supported_extensions = info
|
supported_extensions = info
|
||||||
.extensions
|
.extensions
|
||||||
|
@ -201,7 +196,6 @@ where
|
||||||
} else {
|
} else {
|
||||||
extra_packet.replace(ws::Frame::from(packet).clone());
|
extra_packet.replace(ws::Frame::from(packet).clone());
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
for extension in supported_extensions.iter_mut() {
|
for extension in supported_extensions.iter_mut() {
|
||||||
extension.handle_handshake(read, write).await?;
|
extension.handle_handshake(read, write).await?;
|
||||||
|
@ -265,7 +259,7 @@ impl ServerMux {
|
||||||
let (supported_extensions, extra_packet, downgraded) =
|
let (supported_extensions, extra_packet, downgraded) =
|
||||||
if let Some(mut builders) = extension_builders {
|
if let Some(mut builders) = extension_builders {
|
||||||
send_info_packet(&tx, &mut builders).await?;
|
send_info_packet(&tx, &mut builders).await?;
|
||||||
maybe_wisp_v2(&mut rx, &tx, &mut builders).await?
|
maybe_wisp_v2(&mut rx, &tx, Role::Server, &mut builders).await?
|
||||||
} else {
|
} else {
|
||||||
(Vec::new(), None, true)
|
(Vec::new(), None, true)
|
||||||
};
|
};
|
||||||
|
@ -452,7 +446,7 @@ impl ClientMux {
|
||||||
if let PacketType::Continue(packet) = first_packet.packet_type {
|
if let PacketType::Continue(packet) = first_packet.packet_type {
|
||||||
let (supported_extensions, extra_packet, downgraded) =
|
let (supported_extensions, extra_packet, downgraded) =
|
||||||
if let Some(mut builders) = extension_builders {
|
if let Some(mut builders) = extension_builders {
|
||||||
let res = maybe_wisp_v2(&mut rx, &tx, &mut builders).await?;
|
let res = maybe_wisp_v2(&mut rx, &tx, Role::Client, &mut builders).await?;
|
||||||
// if not downgraded
|
// if not downgraded
|
||||||
if !res.2 {
|
if !res.2 {
|
||||||
send_info_packet(&tx, &mut builders).await?;
|
send_info_packet(&tx, &mut builders).await?;
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue