mirror of
https://mirror.suhoan.cn/https://github.com/EasyTier/EasyTier.git
synced 2025-12-18 15:57:24 +08:00
make tun dependency optional (#142)
* remove log crates * remove udp/raw of smoltcp * make tun as optional dependancy, compile for freebsd works
This commit is contained in:
@@ -1,8 +1,7 @@
|
||||
use parking_lot::Mutex;
|
||||
use smoltcp::{
|
||||
iface::{SocketHandle as InnerSocketHandle, SocketSet},
|
||||
socket::{raw, tcp, udp},
|
||||
wire::{IpProtocol, IpVersion},
|
||||
socket::tcp,
|
||||
};
|
||||
use std::{
|
||||
ops::{Deref, DerefMut},
|
||||
@@ -14,14 +13,6 @@ use std::{
|
||||
pub struct BufferSize {
|
||||
pub tcp_rx_size: usize,
|
||||
pub tcp_tx_size: usize,
|
||||
pub udp_rx_size: usize,
|
||||
pub udp_tx_size: usize,
|
||||
pub udp_rx_meta_size: usize,
|
||||
pub udp_tx_meta_size: usize,
|
||||
pub raw_rx_size: usize,
|
||||
pub raw_tx_size: usize,
|
||||
pub raw_rx_meta_size: usize,
|
||||
pub raw_tx_meta_size: usize,
|
||||
}
|
||||
|
||||
impl Default for BufferSize {
|
||||
@@ -29,14 +20,6 @@ impl Default for BufferSize {
|
||||
BufferSize {
|
||||
tcp_rx_size: 8192,
|
||||
tcp_tx_size: 8192,
|
||||
udp_rx_size: 8192,
|
||||
udp_tx_size: 8192,
|
||||
udp_rx_meta_size: 32,
|
||||
udp_tx_meta_size: 32,
|
||||
raw_rx_size: 8192,
|
||||
raw_tx_size: 8192,
|
||||
raw_rx_meta_size: 32,
|
||||
raw_tx_meta_size: 32,
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -65,16 +48,6 @@ impl SocketAlloctor {
|
||||
let handle = set.add(self.alloc_tcp_socket());
|
||||
SocketHandle::new(handle, self.sockets.clone())
|
||||
}
|
||||
pub fn new_udp_socket(&self) -> SocketHandle {
|
||||
let mut set = self.sockets.lock();
|
||||
let handle = set.add(self.alloc_udp_socket());
|
||||
SocketHandle::new(handle, self.sockets.clone())
|
||||
}
|
||||
pub fn new_raw_socket(&self, ip_version: IpVersion, ip_protocol: IpProtocol) -> SocketHandle {
|
||||
let mut set = self.sockets.lock();
|
||||
let handle = set.add(self.alloc_raw_socket(ip_version, ip_protocol));
|
||||
SocketHandle::new(handle, self.sockets.clone())
|
||||
}
|
||||
fn alloc_tcp_socket(&self) -> tcp::Socket<'static> {
|
||||
let rx_buffer = tcp::SocketBuffer::new(vec![0; self.buffer_size.tcp_rx_size]);
|
||||
let tx_buffer = tcp::SocketBuffer::new(vec![0; self.buffer_size.tcp_tx_size]);
|
||||
@@ -83,36 +56,6 @@ impl SocketAlloctor {
|
||||
|
||||
tcp
|
||||
}
|
||||
fn alloc_udp_socket(&self) -> udp::Socket<'static> {
|
||||
let rx_buffer = udp::PacketBuffer::new(
|
||||
vec![udp::PacketMetadata::EMPTY; self.buffer_size.udp_rx_meta_size],
|
||||
vec![0; self.buffer_size.udp_rx_size],
|
||||
);
|
||||
let tx_buffer = udp::PacketBuffer::new(
|
||||
vec![udp::PacketMetadata::EMPTY; self.buffer_size.udp_tx_meta_size],
|
||||
vec![0; self.buffer_size.udp_tx_size],
|
||||
);
|
||||
let udp = udp::Socket::new(rx_buffer, tx_buffer);
|
||||
|
||||
udp
|
||||
}
|
||||
fn alloc_raw_socket(
|
||||
&self,
|
||||
ip_version: IpVersion,
|
||||
ip_protocol: IpProtocol,
|
||||
) -> raw::Socket<'static> {
|
||||
let rx_buffer = raw::PacketBuffer::new(
|
||||
vec![raw::PacketMetadata::EMPTY; self.buffer_size.raw_rx_meta_size],
|
||||
vec![0; self.buffer_size.raw_rx_size],
|
||||
);
|
||||
let tx_buffer = raw::PacketBuffer::new(
|
||||
vec![raw::PacketMetadata::EMPTY; self.buffer_size.raw_tx_meta_size],
|
||||
vec![0; self.buffer_size.raw_tx_size],
|
||||
);
|
||||
let raw = raw::Socket::new(ip_version, ip_protocol, rx_buffer, tx_buffer);
|
||||
|
||||
raw
|
||||
}
|
||||
}
|
||||
|
||||
pub struct SocketHandle(InnerSocketHandle, SharedSocketSet);
|
||||
|
||||
Reference in New Issue
Block a user