From d17fd336bced4c66b8ea0ec1429026750a703b2f Mon Sep 17 00:00:00 2001 From: alterdekim Date: Sat, 5 Oct 2024 20:31:58 +0300 Subject: [PATCH] modified: src/client.rs --- src/client.rs | 22 +++++++--------------- 1 file changed, 7 insertions(+), 15 deletions(-) diff --git a/src/client.rs b/src/client.rs index c92a250..8af0ec0 100644 --- a/src/client.rs +++ b/src/client.rs @@ -28,12 +28,11 @@ pub async fn client_mode(client_config: ClientConfiguration, fd: i32) -> i32 { let sock = UdpSocket::bind("0.0.0.0:25565").await.unwrap(); sock.connect(&client_config.server.endpoint).await.unwrap(); - //let mut config = tun2::Configuration::default(); + info!("FD: {:?}", &fd); - //config.raw_fd(fd).up(); - - //let mut dev = tun2::create_as_async(&config).unwrap(); - //let (mut dev_reader, mut dev_writer) = dev.split(); + let mut dev = unsafe { File::from_raw_fd(fd) }; + let mut dev_reader = BufReader::new(dev); + let mut dev_writer = BufWriter::new(dev); let sock_rec = Arc::new(sock); let sock_snd = sock_rec.clone(); @@ -43,7 +42,7 @@ pub async fn client_mode(client_config: ClientConfiguration, fd: i32) -> i32 { let cipher_shared: Arc>> = Arc::new(Mutex::new(None)); - /* tokio::spawn(async move { + tokio::spawn(async move { while let Ok(bytes) = rx.recv() { info!("Write to tun."); dev_writer.write_all(&bytes).unwrap(); @@ -51,7 +50,7 @@ pub async fn client_mode(client_config: ClientConfiguration, fd: i32) -> i32 { }); tokio::spawn(async move { - let mut buf = vec![0; 8192]; + let mut buf = vec![0; 1400]; // mtu while let Ok(n) = dev_reader.read(&mut buf) { info!("Read from tun."); dx.send(buf[..n].to_vec()).unwrap(); @@ -139,14 +138,7 @@ pub async fn client_mode(client_config: ClientConfiguration, fd: i32) -> i32 { warn!("There is no shared_secret in main loop"); } } - }*/ - let mut f = unsafe { File::from_raw_fd(fd) }; - - let mut buf = vec![0; 1400]; - while let Ok(n) = f.read(&mut buf) { - info!("Read from tun. {:?} bytes", n); - return n as i32; } - info!("end."); + -2 } \ No newline at end of file