mirror of
https://github.com/EasyTier/EasyTier.git
synced 2026-09-02 09:09:17 +00:00
refactor: remove ScopedTask (#2125)
* replace ScopedTask with AbortOnDropHandle
This commit is contained in:
@@ -12,14 +12,12 @@ use crossbeam::atomic::AtomicCell;
|
||||
#[cfg(feature = "kcp")]
|
||||
use kcp_sys::{endpoint::KcpEndpoint, stream::KcpStream};
|
||||
use tokio_util::sync::{CancellationToken, DropGuard};
|
||||
use tokio_util::task::AbortOnDropHandle;
|
||||
|
||||
#[cfg(feature = "kcp")]
|
||||
use crate::gateway::kcp_proxy::NatDstKcpConnector;
|
||||
use crate::{
|
||||
common::{
|
||||
config::PortForwardConfig, global_ctx::GlobalCtxEvent, join_joinset_background,
|
||||
scoped_task::ScopedTask,
|
||||
},
|
||||
common::{config::PortForwardConfig, global_ctx::GlobalCtxEvent, join_joinset_background},
|
||||
gateway::{
|
||||
fast_socks5::{
|
||||
server::{
|
||||
@@ -473,7 +471,7 @@ pub struct Socks5Server {
|
||||
entries: Socks5EntrySet,
|
||||
|
||||
udp_client_map: Arc<DashMap<UdpClientKey, Arc<UdpClientInfo>>>,
|
||||
udp_forward_task: Arc<DashMap<UdpClientKey, ScopedTask<()>>>,
|
||||
udp_forward_task: Arc<DashMap<UdpClientKey, AbortOnDropHandle<()>>>,
|
||||
|
||||
#[cfg(feature = "kcp")]
|
||||
kcp_endpoint: Mutex<Option<Weak<KcpEndpoint>>>,
|
||||
@@ -997,7 +995,7 @@ impl Socks5Server {
|
||||
let client_addr = addr;
|
||||
udp_forward_task.insert(
|
||||
udp_client_key.clone(),
|
||||
ScopedTask::from(tokio::spawn(async move {
|
||||
AbortOnDropHandle::new(tokio::spawn(async move {
|
||||
loop {
|
||||
let mut buf = vec![0u8; 8192];
|
||||
match socks_udp.recv_from(&mut buf).await {
|
||||
|
||||
@@ -22,8 +22,7 @@ use smoltcp::{
|
||||
pub use socket::{TcpListener, TcpStream, UdpSocket};
|
||||
pub use socket_allocator::BufferSize;
|
||||
use tokio::sync::Notify;
|
||||
|
||||
use crate::common::scoped_task::ScopedTask;
|
||||
use tokio_util::task::AbortOnDropHandle;
|
||||
|
||||
/// The async devices.
|
||||
pub mod channel_device;
|
||||
@@ -79,7 +78,7 @@ pub struct Net {
|
||||
ip_addr: IpCidr,
|
||||
from_port: AtomicU16,
|
||||
stopper: Arc<Notify>,
|
||||
fut: ScopedTask<io::Result<()>>,
|
||||
fut: AbortOnDropHandle<io::Result<()>>,
|
||||
}
|
||||
|
||||
impl std::fmt::Debug for Net {
|
||||
@@ -131,7 +130,7 @@ impl Net {
|
||||
ip_addr: config.ip_addr,
|
||||
from_port: AtomicU16::new(10001),
|
||||
stopper,
|
||||
fut: ScopedTask::from(tokio::spawn(fut)),
|
||||
fut: AbortOnDropHandle::new(tokio::spawn(fut)),
|
||||
}
|
||||
}
|
||||
pub fn get_address(&self) -> IpAddr {
|
||||
|
||||
@@ -21,13 +21,14 @@ use tokio::{
|
||||
task::{JoinHandle, JoinSet},
|
||||
time::timeout,
|
||||
};
|
||||
use tokio_util::task::AbortOnDropHandle;
|
||||
|
||||
use tracing::Level;
|
||||
|
||||
use super::{CidrSet, ip_reassembler::IpReassembler};
|
||||
use crate::tunnel::common::bind;
|
||||
use crate::{
|
||||
common::{PeerId, error::Error, global_ctx::ArcGlobalCtx, scoped_task::ScopedTask},
|
||||
common::{PeerId, error::Error, global_ctx::ArcGlobalCtx},
|
||||
gateway::ip_reassembler::{ComposeIpv4PacketArgs, compose_ipv4_packet},
|
||||
peers::{PeerPacketFilter, peer_manager::PeerManager},
|
||||
tunnel::{
|
||||
@@ -149,7 +150,7 @@ impl UdpNatEntry {
|
||||
let (s, mut r) = channel(128);
|
||||
|
||||
let self_clone = self.clone();
|
||||
let recv_task = ScopedTask::from(tokio::spawn(async move {
|
||||
let recv_task = AbortOnDropHandle::new(tokio::spawn(async move {
|
||||
let mut cur_buf = BytesMut::new();
|
||||
loop {
|
||||
if self_clone
|
||||
@@ -194,7 +195,7 @@ impl UdpNatEntry {
|
||||
}));
|
||||
|
||||
let self_clone = self.clone();
|
||||
let send_task = ScopedTask::from(tokio::spawn(async move {
|
||||
let send_task = AbortOnDropHandle::new(tokio::spawn(async move {
|
||||
let mut ip_id = 1;
|
||||
while let Some((mut packet, len, src_socket)) = r.recv().await {
|
||||
let SocketAddr::V4(mut src_v4) = src_socket else {
|
||||
|
||||
Reference in New Issue
Block a user