mirror of
https://github.com/tun2proxy/tun2proxy.git
synced 2025-04-21 22:39:08 +00:00
switch to tun crate instead of tun2
This commit is contained in:
parent
b9cf06da33
commit
3fb02f0fc7
4 changed files with 8 additions and 9 deletions
|
@ -38,7 +38,7 @@ thiserror = "1"
|
|||
tokio = { version = "1", features = ["full"] }
|
||||
tokio-util = "0.7"
|
||||
tproxy-config = { version = "6", default-features = false }
|
||||
tun2 = { version = "3", features = ["async"] }
|
||||
tun = { version = "0.7", features = ["async"] }
|
||||
udp-stream = { version = "0.0.12", default-features = false }
|
||||
unicase = "2"
|
||||
url = "2"
|
||||
|
|
|
@ -30,10 +30,9 @@ pub struct Args {
|
|||
pub tun_fd: Option<i32>,
|
||||
|
||||
/// Set whether to close the received raw file descriptor on drop or not.
|
||||
/// This setting is passed to the tun2 crate.
|
||||
/// See [tun2::Configuration::close_fd_on_drop].
|
||||
/// This setting is dependent on [tun_fd].
|
||||
#[cfg(unix)]
|
||||
#[arg(long, value_name = "true or false", conflicts_with = "tun")]
|
||||
#[arg(long, value_name = "true or false", conflicts_with = "tun", requires = "tun_fd")]
|
||||
pub close_fd_on_drop: Option<bool>,
|
||||
|
||||
/// Create a tun interface in a newly created unprivileged namespace
|
||||
|
|
|
@ -6,7 +6,7 @@ use crate::{
|
|||
};
|
||||
use std::os::raw::{c_char, c_int};
|
||||
use tproxy_config::{TproxyArgs, TUN_GATEWAY, TUN_IPV4, TUN_NETMASK};
|
||||
use tun2::{AbstractDevice, DEFAULT_MTU as MTU};
|
||||
use tun::{AbstractDevice, DEFAULT_MTU as MTU};
|
||||
|
||||
static TUN_QUIT: std::sync::Mutex<Option<tokio_util::sync::CancellationToken>> = std::sync::Mutex::new(None);
|
||||
|
||||
|
@ -83,7 +83,7 @@ pub unsafe extern "C" fn tun2proxy_with_name_run(
|
|||
pub async fn desktop_run_async(args: Args, shutdown_token: tokio_util::sync::CancellationToken) -> std::io::Result<()> {
|
||||
let bypass_ips = args.bypass.clone();
|
||||
|
||||
let mut tun_config = tun2::Configuration::default();
|
||||
let mut tun_config = tun::Configuration::default();
|
||||
tun_config.address(TUN_IPV4).netmask(TUN_NETMASK).mtu(MTU).up();
|
||||
tun_config.destination(TUN_GATEWAY);
|
||||
#[cfg(unix)]
|
||||
|
@ -122,7 +122,7 @@ pub async fn desktop_run_async(args: Args, shutdown_token: tokio_util::sync::Can
|
|||
#[allow(unused_mut, unused_assignments, unused_variables)]
|
||||
let mut setup = true;
|
||||
|
||||
let device = tun2::create_as_async(&tun_config)?;
|
||||
let device = tun::create_as_async(&tun_config)?;
|
||||
|
||||
if let Ok(tun_name) = device.tun_name() {
|
||||
tproxy_args = tproxy_args.tun_name(&tun_name);
|
||||
|
|
|
@ -28,7 +28,7 @@ pub fn mobile_run(args: Args, tun_mtu: u16, _packet_information: bool) -> c_int
|
|||
}
|
||||
|
||||
let block = async move {
|
||||
let mut config = tun2::Configuration::default();
|
||||
let mut config = tun::Configuration::default();
|
||||
|
||||
#[cfg(unix)]
|
||||
if let Some(fd) = args.tun_fd {
|
||||
|
@ -49,7 +49,7 @@ pub fn mobile_run(args: Args, tun_mtu: u16, _packet_information: bool) -> c_int
|
|||
config.packet_information(_packet_information);
|
||||
});
|
||||
|
||||
let device = tun2::create_as_async(&config).map_err(std::io::Error::from)?;
|
||||
let device = tun::create_as_async(&config).map_err(std::io::Error::from)?;
|
||||
let join_handle = tokio::spawn(crate::run(device, tun_mtu, args, shutdown_token));
|
||||
|
||||
join_handle.await.map_err(std::io::Error::from)?
|
||||
|
|
Loading…
Add table
Reference in a new issue